RuntimeTypeHandle RuntimeTypeHandle RuntimeTypeHandle RuntimeTypeHandle Struct

定義

使用內部中繼資料 (Metadata) 語彙基元 (Token) 來表示型別。Represents a type using an internal metadata token.

public value class RuntimeTypeHandle : System::Runtime::Serialization::ISerializable
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct RuntimeTypeHandle : System.Runtime.Serialization.ISerializable
type RuntimeTypeHandle = struct
    interface ISerializable
Public Structure RuntimeTypeHandle
Implements ISerializable
繼承
RuntimeTypeHandleRuntimeTypeHandleRuntimeTypeHandleRuntimeTypeHandle
屬性
實作

範例

下列範例示範如何RuntimeTypeHandle從型別或物件取得, 以及如何將控制碼轉換回型別。The following example demonstrates how to obtain a RuntimeTypeHandle from a type or from an object, and how to turn the handle back into a type.

using namespace System;
using namespace System::Reflection;

public ref class MyClass1
{
private:
    int x;

public:
    int MyMethod()
    {
        return x;
    }
};

int main()
{
    MyClass1^ myClass1 = gcnew MyClass1;
   
    // Get the RuntimeTypeHandle from an object.
    RuntimeTypeHandle myRTHFromObject = Type::GetTypeHandle( myClass1 );
   
    // Get the RuntimeTypeHandle from a type.
    RuntimeTypeHandle myRTHFromType = MyClass1::typeid->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:  3295832
myRTHFromObject.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type::GetTypeFromHandle(myRTHFromObject):  MyClass1

myRTHFromObject.Equals(myRTHFromType):  True

myRTHFromType.Value:  3295832
myRTHFromType.GetType():  System.RuntimeTypeHandle
Get the type back from the handle...
Type::GetTypeFromHandle(myRTHFromType):  MyClass1
 */
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
 */
Imports System
Imports System.Reflection

Public Class MyClass1
    Private x As Integer = 0
   
    Public Function MyMethod() As Integer
        Return x
    End Function 'MyMethod
End Class 

Public Class MyClass2
   
    Public Shared Sub Main()
        Dim myClass1 As New MyClass1()
      
        ' Get the RuntimeTypeHandle from an object.
        Dim myRTHFromObject As RuntimeTypeHandle = Type.GetTypeHandle(myClass1)
        ' Get the RuntimeTypeHandle from a type.
        Dim myRTHFromType As RuntimeTypeHandle = GetType(MyClass1).TypeHandle
      
        Console.WriteLine(vbLf & "myRTHFromObject.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(vbLf & "myRTHFromObject.Equals(myRTHFromType):  {0}", _
            myRTHFromObject.Equals(myRTHFromType))

        Console.WriteLine(vbLf & "myRTHFromType.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))
    End Sub 
End Class 

' This code example produces output similar to the following:
'
'myRTHFromObject.Value:  7549720
'myRTHFromObject.GetType():  System.RuntimeTypeHandle
'Get the type back from the handle...
'Type.GetTypeFromHandle(myRTHFromObject):  MyClass1
'
'myRTHFromObject.Equals(myRTHFromType):  True
'
'myRTHFromType.Value:  7549720
'myRTHFromType.GetType():  System.RuntimeTypeHandle
'Get the type back from the handle...
'Type.GetTypeFromHandle(myRTHFromType):  MyClass1

屬性

Value Value Value Value

取得由這個執行個體表示型別的控制代碼。Gets a handle to the type represented by this instance.

方法

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指出指定的物件是否等於目前的 RuntimeTypeHandle 結構。Indicates whether the specified object is equal to the current RuntimeTypeHandle structure.

Equals(RuntimeTypeHandle) Equals(RuntimeTypeHandle) Equals(RuntimeTypeHandle) Equals(RuntimeTypeHandle)

指出指定的 RuntimeTypeHandle 結構是否等於目前的 RuntimeTypeHandle 結構。Indicates whether the specified RuntimeTypeHandle structure is equal to the current RuntimeTypeHandle structure.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

傳回目前執行個體的雜湊碼。Returns the hash code for the current instance.

GetModuleHandle() GetModuleHandle() GetModuleHandle() GetModuleHandle()

取得模組控制代碼,這個模組包含由目前執行個體所表示的型別。Gets a handle to the module that contains the type represented by the current instance.

GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

使用要還原序列化由這個執行個體所表示型別的所需資料,來填入 SerializationInfoPopulates a SerializationInfo with the data necessary to deserialize the type represented by the current instance.

運算子

Equality(Object, RuntimeTypeHandle) Equality(Object, RuntimeTypeHandle) Equality(Object, RuntimeTypeHandle) Equality(Object, RuntimeTypeHandle)

指出物件和 RuntimeTypeHandle 結構是否相等。Indicates whether an object and a RuntimeTypeHandle structure are equal.

Equality(RuntimeTypeHandle, Object) Equality(RuntimeTypeHandle, Object) Equality(RuntimeTypeHandle, Object) Equality(RuntimeTypeHandle, Object)

指出 RuntimeTypeHandle 結構是否等於物件。Indicates whether a RuntimeTypeHandle structure is equal to an object.

Inequality(Object, RuntimeTypeHandle) Inequality(Object, RuntimeTypeHandle) Inequality(Object, RuntimeTypeHandle) Inequality(Object, RuntimeTypeHandle)

指出物件和 RuntimeTypeHandle 結構是否不相等。Indicates whether an object and a RuntimeTypeHandle structure are not equal.

Inequality(RuntimeTypeHandle, Object) Inequality(RuntimeTypeHandle, Object) Inequality(RuntimeTypeHandle, Object) Inequality(RuntimeTypeHandle, Object)

指出 RuntimeTypeHandle 結構是否不等於物件。Indicates whether a RuntimeTypeHandle structure is not equal to an object.

適用於