Type.GetTypeHandle メソッド
指定したオブジェクトの Type のハンドルを取得します。
Public Shared Function GetTypeHandle( _
ByVal o As Object _) As RuntimeTypeHandle
[C#]
public static RuntimeTypeHandle GetTypeHandle(objecto);
[C++]
public: static RuntimeTypeHandle GetTypeHandle(Object* o);
[JScript]
public static function GetTypeHandle(
o : Object) : RuntimeTypeHandle;
パラメータ
- o
Type ハンドルの取得対象となる Object 。
戻り値
解説
ハンドルは取得されたアプリケーション ドメインでだけ有効です。
使用例
[Visual Basic, C#, C++] クラス 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 'MyClass1
_
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("myRTHFromObject.Value: {0}", myRTHFromObject.Value)
Console.WriteLine("myRTHFromObject.Type: {0}", myRTHFromObject.GetType())
Console.WriteLine("myRTHFromType.Value: {0}", myRTHFromType.Value)
Console.WriteLine("myRTHFromType.Type: {0}", myRTHFromType.GetType())
End Sub 'Main
End Class 'MyClass2
[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("myRTHFromObject.Value: {0}", myRTHFromObject.Value);
Console.WriteLine("myRTHFromObject.Type: {0}", myRTHFromObject.GetType());
Console.WriteLine("myRTHFromType.Value: {0}", myRTHFromType.Value);
Console.WriteLine("myRTHFromType.Type: {0}", myRTHFromType.GetType());
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::Reflection;
public __gc class MyClass1 {
private:
int x;
public:
int MyMethod() {
return x;
}
};
int 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(S"myRTHFromObject.Value: {0}",__box( myRTHFromObject.Value));
Console::WriteLine(S"myRTHFromObject.Type: {0}", __box(myRTHFromObject)->GetType());
Console::WriteLine(S"myRTHFromType.Value: {0}",__box( myRTHFromType.Value));
Console::WriteLine(S"myRTHFromType.Type: {0}", __box(myRTHFromType)->GetType());
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
参照
Type クラス | Type メンバ | System 名前空間 | RuntimeTypeHandle | TypeHandle | GetTypeFromHandle