C#中的Type.GetTypeHandle()方法用于获取指定对象的Type的句柄。
以下是语法-
public static RuntimeTypeHandle GetTypeHandle (object ob);
在上面,ob是要为其获取类型句柄的对象。
using System; public class Demo { public static void Main(){ Type type1 = typeof(System.Type); RuntimeTypeHandle typeHandle = Type.GetTypeHandle(type1); Type type = Type.GetTypeFromHandle(typeHandle); Console.WriteLine("Attributes = " + type.Attributes); Console.WriteLine("Type Referenced = "+ type); } }
输出结果
这将产生以下输出-
Attributes = AutoLayout, AnsiClass, Class, Serializable, BeforeFieldInit Type Referenced = System.RuntimeType
现在让我们来看另一个实现Type.GetTypeHandle()方法的示例-
using System; public class Demo { public static void Main(){ Type type1 = typeof(double); RuntimeTypeHandle typeHandle = Type.GetTypeHandle(type1); Type type = Type.GetTypeFromHandle(typeHandle); Console.WriteLine("Attributes = " + type.Attributes); Console.WriteLine("Type Referenced = "+ type); } }
输出结果
这将产生以下输出-
Attributes = AutoLayout, AnsiClass, Class, Serializable, BeforeFieldInit Type Referenced = System.RuntimeType