Type.TypeHandle Type.TypeHandle Type.TypeHandle Type.TypeHandle Property


获取当前 Type 的句柄。Gets the handle for the current Type.

 virtual property RuntimeTypeHandle TypeHandle { RuntimeTypeHandle get(); };
public virtual RuntimeTypeHandle TypeHandle { get; }
member this.TypeHandle : RuntimeTypeHandle
Public Overridable ReadOnly Property TypeHandle As RuntimeTypeHandle


当前 Type 的句柄。The handle for the current Type.



.NET Compact Framework 当前不支持此属性。The .NET Compact Framework does not currently support this property.


以下示例返回相应的类型的句柄,并将该句柄传递给一个方法,获取从句柄的类型并将其显示。The following example returns the handle of the corresponding type and passes the handle to a method that gets the type from the handle and displays it.

using namespace System;
using namespace System::Reflection;
ref class MyClass
   int myField;

void DisplayTypeHandle( RuntimeTypeHandle myTypeHandle )
   // Get the type from the handle.
   Type^ myType = Type::GetTypeFromHandle( myTypeHandle );
   // Display the type.
   Console::WriteLine( "\nDisplaying the type from the handle:\n" );
   Console::WriteLine( "The type is {0}.", myType );

int main()
      MyClass^ myClass = gcnew MyClass;
      // Get the type of MyClass.
      Type^ myClassType = myClass->GetType();
      // Get the runtime handle of MyClass.
      RuntimeTypeHandle myClassHandle = myClassType->TypeHandle;
      DisplayTypeHandle( myClassHandle );
   catch ( Exception^ e ) 
      Console::WriteLine( "Exception: {0}", e->Message );


using System;
using System.Reflection;
class MyClass
    public int myField = 10;

class Type_TypeHandle
    public static void Main()
            MyClass myClass = new MyClass();

            // Get the type of MyClass.
            Type myClassType = myClass.GetType();

            // Get the runtime handle of MyClass.
            RuntimeTypeHandle myClassHandle = myClassType.TypeHandle;
        catch(Exception e)
            Console.WriteLine("Exception: {0}", e.Message );

    public static void DisplayTypeHandle(RuntimeTypeHandle myTypeHandle)
        // Get the type from the handle.
        Type myType = Type.GetTypeFromHandle(myTypeHandle);      
        // Display the type.
        Console.WriteLine("\nDisplaying the type from the handle:\n");
        Console.WriteLine("The type is {0}.", myType.ToString());
Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic
Class [MyClass]
    Public myField As Integer = 10
End Class '[MyClass]
Class Type_TypeHandle
    Public Shared Sub Main()
            Dim [myClass] As New [MyClass]()

            ' Get the type of MyClass.
            Dim myClassType As Type = [myClass].GetType()

            ' Get the runtime handle of MyClass.
            Dim myClassHandle As RuntimeTypeHandle = myClassType.TypeHandle

        Catch e As Exception
            Console.WriteLine("Exception: {0}", e.Message.ToString())
        End Try
    End Sub 'Main

    Public Shared Sub DisplayTypeHandle(ByVal myTypeHandle As RuntimeTypeHandle)
        ' Get the type from the handle.
        Dim myType As Type = Type.GetTypeFromHandle(myTypeHandle)
        ' Display the type.
        Console.WriteLine(ControlChars.NewLine + "Displaying the type from the handle:" + ControlChars.NewLine)
        Console.WriteLine("The type is {0}.", myType.ToString())
    End Sub 'DisplayTypeHandle
End Class 'Type_TypeHandle


TypeHandle 封装指向表示的类型的内部数据结构的指针。TypeHandle encapsulates a pointer to an internal data structure that represents the type. 此句柄在进程生存期内是唯一的。This handle is unique during the process lifetime. 仅在已获取的应用程序域中是有效句柄。The handle is valid only in the application domain in which it was obtained.