FieldInfo.FieldHandle プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フィールドの内部メタデータ形式を識別するハンドルである RuntimeFieldHandle
を取得します。
public:
abstract property RuntimeFieldHandle FieldHandle { RuntimeFieldHandle get(); };
public abstract RuntimeFieldHandle FieldHandle { get; }
member this.FieldHandle : RuntimeFieldHandle
Public MustOverride ReadOnly Property FieldHandle As RuntimeFieldHandle
プロパティ値
フィールドの内部メタデータ形式を識別するハンドル。
実装
例
次の例では、MyClass.MyField フィールド情報を取得し、フィールド ハンドルに関連付けられているフィールドを表示します。
using namespace System;
using namespace System::Reflection;
public ref class MyClass
{
public:
String^ MyField;
};
void DisplayFieldHandle( RuntimeFieldHandle myFieldHandle )
{
// Get the type from the handle.
FieldInfo^ myField = FieldInfo::GetFieldFromHandle( myFieldHandle );
// Display the type.
Console::WriteLine( "\nDisplaying the field from the handle.\n" );
Console::WriteLine( "The type is {0}.", myField );
}
int main()
{
MyClass^ myClass = gcnew MyClass;
// Get the type of MyClass.
Type^ myType = MyClass::typeid;
try
{
// Get the field information of MyField.
FieldInfo^ myFieldInfo = myType->GetField( "MyField", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) );
// Determine whether or not the FieldInfo Object* is 0.
if ( myFieldInfo != nullptr )
{
// Get the handle for the field.
RuntimeFieldHandle myFieldHandle = myFieldInfo->FieldHandle;
DisplayFieldHandle( myFieldHandle );
}
else
{
Console::WriteLine( "The myFieldInfo Object* is 0." );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception: {0}", e->Message );
}
}
using System;
using System.Reflection;
public class MyClass
{
public string MyField = "Microsoft";
}
public class FieldInfo_FieldHandle
{
public static void Main()
{
MyClass myClass =new MyClass();
// Get the type of MyClass.
Type myType = typeof(MyClass);
try
{
// Get the field information of MyField.
FieldInfo myFieldInfo = myType.GetField("MyField", BindingFlags.Public
| BindingFlags.Instance);
// Determine whether or not the FieldInfo object is null.
if(myFieldInfo!=null)
{
// Get the handle for the field.
RuntimeFieldHandle myFieldHandle=myFieldInfo.FieldHandle;
DisplayFieldHandle(myFieldHandle);
}
else
{
Console.WriteLine("The myFieldInfo object is null.");
}
}
catch(Exception e)
{
Console.WriteLine("Exception: {0}", e.Message);
}
}
public static void DisplayFieldHandle(RuntimeFieldHandle myFieldHandle)
{
// Get the type from the handle.
FieldInfo myField = FieldInfo.GetFieldFromHandle(myFieldHandle);
// Display the type.
Console.WriteLine("\nDisplaying the field from the handle.\n");
Console.WriteLine("The type is {0}.", myField.ToString());
}
}
Imports System.Reflection
Public Class [MyClass]
Public MyField As String = "Microsoft"
End Class
Public Class FieldInfo_FieldHandle
Public Shared Sub Main()
Dim [myClass] As New [MyClass]()
' Get the type of MyClass.
Dim myType As Type = GetType([MyClass])
Try
' Get the field information of MyField.
Dim myFieldInfo As FieldInfo = myType.GetField("MyField", BindingFlags.Public Or BindingFlags.Instance)
' Determine whether or not the FieldInfo object is null.
If Not (myFieldInfo Is Nothing) Then
' Get the handle for the field.
Dim myFieldHandle As RuntimeFieldHandle = myFieldInfo.FieldHandle
DisplayFieldHandle(myFieldHandle)
Else
Console.WriteLine("The myFieldInfo object is null.")
End If
Catch e As Exception
Console.WriteLine(" Exception: {0}", e.Message.ToString())
End Try
End Sub
Public Shared Sub DisplayFieldHandle(ByVal myFieldHandle As RuntimeFieldHandle)
' Get the type from the handle.
Dim myField As FieldInfo = FieldInfo.GetFieldFromHandle(myFieldHandle)
' Display the type.
Console.WriteLine(ControlChars.Cr + "Displaying the field from the handle." + ControlChars.Cr)
Console.WriteLine("The type is {0}.", myField.ToString())
End Sub
End Class
注釈
ハンドルは、取得された appdomain でのみ有効です。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET