使用英语阅读

通过


RuntimeTypeHandle 结构

定义

表示使用内部元数据标记的类型。

C#
public struct RuntimeTypeHandle
C#
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
C#
public struct RuntimeTypeHandle : IEquatable<RuntimeTypeHandle>, System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
继承
RuntimeTypeHandle
属性
实现

示例

以下示例演示如何从类型或对象获取 RuntimeTypeHandle ,以及如何将句柄重新转换为类型。

C#
using System;
using System.Reflection;

public class MyClass1
{
    private int x=0;
    public int MyMethod()
    {
        return x;
    }
}

public class MyClass2
{
    public static void Main()
    {
        MyClass1 myClass1 = new MyClass1();

        // Get the RuntimeTypeHandle from an object.
        RuntimeTypeHandle myRTHFromObject = Type.GetTypeHandle(myClass1);
        // Get the RuntimeTypeHandle from a type.
        RuntimeTypeHandle myRTHFromType = typeof(MyClass1).TypeHandle;

        Console.WriteLine("\nmyRTHFromObject.Value:  {0}", myRTHFromObject.Value);
        Console.WriteLine("myRTHFromObject.GetType():  {0}", myRTHFromObject.GetType());
        Console.WriteLine("Get the type back from the handle...");
        Console.WriteLine("Type.GetTypeFromHandle(myRTHFromObject):  {0}",
            Type.GetTypeFromHandle(myRTHFromObject));

        Console.WriteLine("\nmyRTHFromObject.Equals(myRTHFromType):  {0}",
            myRTHFromObject.Equals(myRTHFromType));

        Console.WriteLine("\nmyRTHFromType.Value:  {0}", myRTHFromType.Value);
        Console.WriteLine("myRTHFromType.GetType():  {0}", myRTHFromType.GetType());
        Console.WriteLine("Get the type back from the handle...");
        Console.WriteLine("Type.GetTypeFromHandle(myRTHFromType):  {0}",
            Type.GetTypeFromHandle(myRTHFromType));
    }
}

/* This code example produces output similar to the following:

myRTHFromObject.Value:  799464
myRTHFromObject.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type.GetTypeFromHandle(myRTHFromObject):  MyClass1

myRTHFromObject.Equals(myRTHFromType):  True

myRTHFromType.Value:  799464
myRTHFromType.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type.GetTypeFromHandle(myRTHFromType):  MyClass1
 */

属性

Value

获取此实例所表示的类型的句柄。

方法

Equals(Object)

指示指定的对象是否等于当前的 RuntimeTypeHandle 结构。

Equals(RuntimeTypeHandle)

指示指定的 RuntimeTypeHandle 结构是否等于当前的 RuntimeTypeHandle 结构。

FromIntPtr(IntPtr)

返回从 RuntimeType 句柄创建的新 RuntimeTypeHandle 对象。

GetHashCode()

返回当前实例的哈希代码。

GetModuleHandle()

获取包含当前实例所表示类型的模块的句柄。

GetObjectData(SerializationInfo, StreamingContext)

用反序列化当前实例表示的类型所必需的数据填充 SerializationInfo

ToIntPtr(RuntimeTypeHandle)

返回 对象的内部指针表示形式 RuntimeTypeHandle

运算符

Equality(Object, RuntimeTypeHandle)

指示某个对象与 RuntimeTypeHandle 结构是否相等。

Equality(RuntimeTypeHandle, Object)

指示 RuntimeTypeHandle 结构与某个对象是否相等。

Inequality(Object, RuntimeTypeHandle)

指示某个对象与 RuntimeTypeHandle 结构是否不相等。

Inequality(RuntimeTypeHandle, Object)

指示 RuntimeTypeHandle 结构与某个对象是否不相等。

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0