Type.GetField メソッド (String, BindingFlags)
アセンブリ: mscorlib (mscorlib.dll 内)

Public MustOverride Function GetField ( _ name As String, _ bindingAttr As BindingFlags _ ) As FieldInfo
Dim instance As Type Dim name As String Dim bindingAttr As BindingFlags Dim returnValue As FieldInfo returnValue = instance.GetField(name, bindingAttr)
- bindingAttr
検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。
または
null 参照 (Visual Basic では Nothing) を返す 0。
指定した要件と一致するフィールドが存在する場合は、そのフィールドを表す FieldInfo オブジェクト。それ以外の場合は null 参照 (Visual Basic では Nothing)。


型に対するリフレクション時に Get メソッドによって返される基本クラスのメンバを次の表に示します。
メンバ型 | 非静的 | |
---|---|---|
いいえ | いいえ | |
いいえ | ||
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 | |
いいえ | はい。メソッド (仮想メソッドと非仮想メソッドの両方) は、名前によって隠蔽することもできますし、名前と署名によって隠蔽することもできます。 | |
いいえ | いいえ | |
適用なし | 共通型システムの規則では、継承は、プロパティを実装するメソッドの継承と同じになります。リフレクションは、プロパティを名前と署名によって隠ぺいされているとして扱います。下記のメモ 2 を参照してください。 |
-
名前と署名による隠ぺいでは、カスタム修飾子、戻り値の型、パラメータの型、sentinel、およびアンマネージ呼び出し規約を含めて、署名のすべての部分が判断の対象となります。これはバイナリ比較です。
-
リフレクションの場合、プロパティおよびイベントは名前と署名によって隠ぺいされています。基本クラスに get アクセサと set アクセサの両方を持つプロパティがあり、派生クラスには get アクセサしかない場合、派生クラスのプロパティにより基本クラスのプロパティが隠ぺいされ、基本クラスの set アクセサにはアクセスできません。
次の BindingFlags フィルタ フラグは、検索対象に含めるフィールドを定義するために使用できます。
-
戻り値を取得するには、BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。
-
検索対象にパブリックでないフィールド (つまり、プライベート フィールドやプロテクト フィールド) を含めるための BindingFlags.NonPublic を指定します。
-
階層構造の上位にある public 静的メンバおよび protected 静的メンバを検索対象に含めるには、BindingFlags.FlattenHierarchy を指定します。継承クラスの private 静的メンバは含まれません。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
詳細については、「System.Reflection.BindingFlags」を参照してください。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
現在の Type が構築ジェネリック型を表している場合、このメソッドは、型パラメータを適切な型の引数で置き換えて FieldInfo を返します。
現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメータを表している場合、このメソッドはクラス制約のフィールドを検索します。

指定したクラスの Type オブジェクトを取得し、指定したバインディング フラグに一致するフィールドの FieldInfo オブジェクトを取得して、そのフィールドの値を表示する例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Public Class MyFieldClassA Public Field As String = "A Field" End Class 'MyFieldClassA Public Class MyFieldClassB Private myField As String = "B Field" Public Property Field() As String Get Return myField End Get Set(ByVal Value As String) If myField <> value Then myField = value End If End Set End Property End Class 'MyFieldClassB Public Class MyFieldInfoClass Public Shared Sub Main() Dim myFieldObjectB As New MyFieldClassB() Dim myFieldObjectA As New MyFieldClassA() Dim myTypeA As Type = GetType(MyFieldClassA) Dim myFieldInfo As FieldInfo = myTypeA.GetField("Field") Dim myTypeB As Type = GetType(MyFieldClassB) Dim myFieldInfo1 As FieldInfo = myTypeB.GetField("myField", _ BindingFlags.NonPublic Or BindingFlags.Instance) Console.WriteLine("The value of the public field is: '{0}'", _ myFieldInfo.GetValue(myFieldObjectA)) Console.WriteLine("The value of the private field is: '{0}'", _ myFieldInfo1.GetValue(myFieldObjectB)) End Sub 'Main End Class 'MyFieldInfoClass
using System; using System.Reflection; public class MyFieldClassA { public string Field = "A Field"; } public class MyFieldClassB { private string field = "B Field"; public string Field { get { return field; } set { if (field!=value) { field=value; } } } } public class MyFieldInfoClass { public static void Main() { MyFieldClassB myFieldObjectB = new MyFieldClassB(); MyFieldClassA myFieldObjectA = new MyFieldClassA(); Type myTypeA = typeof(MyFieldClassA); FieldInfo myFieldInfo = myTypeA.GetField("Field"); Type myTypeB = typeof(MyFieldClassB); FieldInfo myFieldInfo1 = myTypeB.GetField("field", BindingFlags.NonPublic | BindingFlags.Instance); Console.WriteLine("The value of the public field is: '{0}'", myFieldInfo.GetValue(myFieldObjectA)); Console.WriteLine("The value of the private field is: '{0}'", myFieldInfo1.GetValue(myFieldObjectB)); } }
using namespace System; using namespace System::Reflection; using namespace System::Security; public ref class MyFieldClassA { public: String^ field; MyFieldClassA() { field = "A Field"; } property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; public ref class MyFieldClassB { public: String^ field; MyFieldClassB() { field = "B Field"; } property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; int main() { try { MyFieldClassB^ myFieldObjectB = gcnew MyFieldClassB; MyFieldClassA^ myFieldObjectA = gcnew MyFieldClassA; Type^ myTypeA = Type::GetType( "MyFieldClassA" ); FieldInfo^ myFieldInfo = myTypeA->GetField( "field" ); Type^ myTypeB = Type::GetType( "MyFieldClassB" ); FieldInfo^ myFieldInfo1 = myTypeB->GetField( "field", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) ); Console::WriteLine( "The value of the field is : {0} ", myFieldInfo->GetValue( myFieldObjectA ) ); Console::WriteLine( "The value of the field is : {0} ", myFieldInfo1->GetValue( myFieldObjectB ) ); } catch ( SecurityException^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( ArgumentNullException^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( Exception^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } }
import System.*; import System.Reflection.*; import System.Security.*; public class MyFieldClassA { public String field = "A Field"; /** @property */ public String get_Field() { return field; } //get_Field /** @property */ public void set_Field(String value) { if (!(field.Equals(value))) { field = value; } } //set_Field } //MyFieldClassA public class MyFieldClassB { public String field = "B Field"; /** @property */ public String get_Field() { return field; } //get_Field /** @property */ public void set_Field(String value) { if (!(field.Equals(value))) { field = value; } } //set_Field } //MyFieldClassB public class MyFieldInfoClass { public static void main(String[] args) { try { MyFieldClassB myFieldObjectB = new MyFieldClassB(); MyFieldClassA myFieldObjectA = new MyFieldClassA(); Type myTypeA = Type.GetType("MyFieldClassA"); FieldInfo myFieldInfo = myTypeA.GetField("field"); Type myTypeB = Type.GetType("MyFieldClassB"); FieldInfo myFieldInfo1 = myTypeB.GetField("field", BindingFlags.Public | BindingFlags.Instance); Console.WriteLine("The value of the field is : {0} ", myFieldInfo.GetValue(myFieldObjectA)); Console.WriteLine("The value of the field is : {0} ", myFieldInfo1.GetValue(myFieldObjectB)); } catch (SecurityException e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } catch (ArgumentNullException e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } catch (System.Exception e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } } //main } //MyFieldInfoClass


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Type.GetField メソッド (String)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As Type Dim name As String Dim returnValue As FieldInfo returnValue = instance.GetField(name)
戻り値
指定した名前のパブリック フィールドが存在する場合は、そのフィールドを表す FieldInfo オブジェクト。それ以外の場合は null 参照 (Visual Basic では Nothing)。


name の検索では大文字と小文字が区別されます。検索には、public static および public のインスタンス フィールドが含まれます。
要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。
現在の Type が構築ジェネリック型を表している場合、このメソッドは、型パラメータを適切な型の引数で置き換えて FieldInfo を返します。
現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメータを表している場合、このメソッドはクラス制約のフィールドを検索します。

指定したクラスの Type オブジェクトを取得し、フィールドの FieldInfo オブジェクトを取得して、そのフィールドの値を表示する例を次に示します。
Imports System Imports System.Reflection Imports Microsoft.VisualBasic Public Class MyFieldClassA Public Field As String = "A Field" End Class 'MyFieldClassA Public Class MyFieldClassB Private myField As String = "B Field" Public Property Field() As String Get Return myField End Get Set(ByVal Value As String) If myField <> value Then myField = value End If End Set End Property End Class 'MyFieldClassB Public Class MyFieldInfoClass Public Shared Sub Main() Dim myFieldObjectB As New MyFieldClassB() Dim myFieldObjectA As New MyFieldClassA() Dim myTypeA As Type = GetType(MyFieldClassA) Dim myFieldInfo As FieldInfo = myTypeA.GetField("Field") Dim myTypeB As Type = GetType(MyFieldClassB) Dim myFieldInfo1 As FieldInfo = myTypeB.GetField("myField", _ BindingFlags.NonPublic Or BindingFlags.Instance) Console.WriteLine("The value of the public field is: '{0}'", _ myFieldInfo.GetValue(myFieldObjectA)) Console.WriteLine("The value of the private field is: '{0}'", _ myFieldInfo1.GetValue(myFieldObjectB)) End Sub 'Main End Class 'MyFieldInfoClass
using System; using System.Reflection; public class MyFieldClassA { public string Field = "A Field"; } public class MyFieldClassB { private string field = "B Field"; public string Field { get { return field; } set { if (field!=value) { field=value; } } } } public class MyFieldInfoClass { public static void Main() { MyFieldClassB myFieldObjectB = new MyFieldClassB(); MyFieldClassA myFieldObjectA = new MyFieldClassA(); Type myTypeA = typeof(MyFieldClassA); FieldInfo myFieldInfo = myTypeA.GetField("Field"); Type myTypeB = typeof(MyFieldClassB); FieldInfo myFieldInfo1 = myTypeB.GetField("field", BindingFlags.NonPublic | BindingFlags.Instance); Console.WriteLine("The value of the public field is: '{0}'", myFieldInfo.GetValue(myFieldObjectA)); Console.WriteLine("The value of the private field is: '{0}'", myFieldInfo1.GetValue(myFieldObjectB)); } }
using namespace System; using namespace System::Reflection; using namespace System::Security; public ref class MyFieldClassA { public: String^ field; MyFieldClassA() { field = "A Field"; } property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; public ref class MyFieldClassB { public: String^ field; MyFieldClassB() { field = "B Field"; } property String^ Field { String^ get() { return field; } void set( String^ value ) { if ( field != value ) { field = value; } } } }; int main() { try { MyFieldClassB^ myFieldObjectB = gcnew MyFieldClassB; MyFieldClassA^ myFieldObjectA = gcnew MyFieldClassA; Type^ myTypeA = Type::GetType( "MyFieldClassA" ); FieldInfo^ myFieldInfo = myTypeA->GetField( "field" ); Type^ myTypeB = Type::GetType( "MyFieldClassB" ); FieldInfo^ myFieldInfo1 = myTypeB->GetField( "field", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) ); Console::WriteLine( "The value of the field is : {0} ", myFieldInfo->GetValue( myFieldObjectA ) ); Console::WriteLine( "The value of the field is : {0} ", myFieldInfo1->GetValue( myFieldObjectB ) ); } catch ( SecurityException^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( ArgumentNullException^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } catch ( Exception^ e ) { Console::WriteLine( "Exception Raised!" ); Console::WriteLine( "Message : {0}", e->Message ); } }
import System.*; import System.Reflection.*; import System.Security.*; public class MyFieldClassA { public String field = "A Field"; /** @property */ public String get_Field() { return field; } //get_Field /** @property */ public void set_Field(String value) { if (!(field.Equals(value))) { field = value; } } //set_Field } //MyFieldClassA public class MyFieldClassB { public String field = "B Field"; /** @property */ public String get_Field() { return field; } //get_Field /** @property */ public void set_Field(String value) { if (!(field.Equals(value))) { field = value; } } //set_Field } //MyFieldClassB public class MyFieldInfoClass { public static void main(String[] args) { try { MyFieldClassB myFieldObjectB = new MyFieldClassB(); MyFieldClassA myFieldObjectA = new MyFieldClassA(); Type myTypeA = Type.GetType("MyFieldClassA"); FieldInfo myFieldInfo = myTypeA.GetField("field"); Type myTypeB = Type.GetType("MyFieldClassB"); FieldInfo myFieldInfo1 = myTypeB.GetField("field", BindingFlags.Public | BindingFlags.Instance); Console.WriteLine("The value of the field is : {0} ", myFieldInfo.GetValue(myFieldObjectA)); Console.WriteLine("The value of the field is : {0} ", myFieldInfo1.GetValue(myFieldObjectB)); } catch (SecurityException e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } catch (ArgumentNullException e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } catch (System.Exception e) { Console.WriteLine("Exception Raised!"); Console.WriteLine("Message :" + e.get_Message()); } } //main } //MyFieldInfoClass


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Type.GetField メソッド

名前 | 説明 |
---|---|
Type.GetField (String) | 指定した名前のパブリック フィールドを検索します。 .NET Compact Framework によってサポートされています。 |
Type.GetField (String, BindingFlags) | 指定したバインディング制約を使用して、指定したフィールドを検索します。 .NET Compact Framework によってサポートされています。 |

_Type.GetField メソッド
Weblioに収録されているすべての辞書からType.GetFieldを検索する場合は、下記のリンクをクリックしてください。

- Type.GetFieldのページへのリンク