Type.GetTypeHandle(Object) メソッド
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したオブジェクトの Type のハンドルを取得します。
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
- o
- Object
型ハンドルの取得対象となるオブジェクト。
o
が null
です。
次の例では、 クラス MyClass1
を定義し、そのインスタンスを取得し、 オブジェクトのランタイム ハンドルを取得します。
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
*/
open System
type MyClass1() =
let x = 0
member _.MyMethod() =
x
let myClass1 = MyClass1()
// Get the RuntimeTypeHandle from an object.
let myRTHFromObject = Type.GetTypeHandle myClass1
// Get the RuntimeTypeHandle from a type.
let myRTHFromType = typeof<MyClass1>.TypeHandle
printfn $"\nmyRTHFromObject.Value: {myRTHFromObject.Value}"
printfn $"myRTHFromObject.GetType(): {myRTHFromObject.GetType()}"
printfn "Get the type back from the handle..."
printfn $"Type.GetTypeFromHandle(myRTHFromObject): {Type.GetTypeFromHandle myRTHFromObject}"
printfn $"\nmyRTHFromObject.Equals(myRTHFromType): {myRTHFromObject.Equals myRTHFromType}"
printfn $"\nmyRTHFromType.Value: {myRTHFromType.Value}"
printfn $"myRTHFromType.GetType(): {myRTHFromType.GetType()}"
printfn "Get the type back from the handle..."
printfn $"Type.GetTypeFromHandle(myRTHFromType): {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
ハンドルは、取得されたアプリケーション ドメインでのみ有効です。
製品 | バージョン |
---|---|
.NET | Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.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, 4.8.1 |
.NET Standard | 2.0, 2.1 |
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。