Type.GetTypeHandle(Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft das Handle für den Type-Wert eines angegebenen Objekts ab.
public:
static RuntimeTypeHandle GetTypeHandle(System::Object ^ o);
public static RuntimeTypeHandle GetTypeHandle (object o);
static member GetTypeHandle : obj -> RuntimeTypeHandle
Public Shared Function GetTypeHandle (o As Object) As RuntimeTypeHandle
Parameter
- o
- Object
Das Objekt, für das das Typhandle abgerufen werden soll.
Gibt zurück
Das Handle für den Type des angegebenen Object.
Ausnahmen
o
ist null
.
Beispiele
Im folgenden Beispiel wird die -Klasse definiert, eine Instanz davon abgerufen und das MyClass1
Laufzeithand handle des -Objekts abgerufen.
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.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
Hinweise
Die Handles sind nur in der Anwendungsdomäne gültig, in der sie erhalten wurden.