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

Public Overridable Function GetMember ( _ name As String, _ bindingAttr As BindingFlags _ ) As MemberInfo()
Dim instance As Type Dim name As String Dim bindingAttr As BindingFlags Dim returnValue As MemberInfo() returnValue = instance.GetMember(name, bindingAttr)
戻り値
指定した名前のパブリック メンバが存在する場合は、そのメンバを表す MemberInfo オブジェクトの配列。それ以外の場合は空の配列。


メンバには、プロパティ、メソッド、フィールド、イベントなどがあります。
このメソッドは、現在のクラスとその基本クラスを検索します。要求されたメンバがパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは空の配列を返します。
次の BindingFlags フィルタ フラグは、検索対象に含めるメンバを定義するために使用できます。
-
戻り値を取得するには、BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。
-
検索対象にパブリックではないメンバ (つまり、プライベート メンバやプロテクト メンバ) を含めるための BindingFlags.NonPublic を指定します。
-
階層構造の上位にある public 静的メンバおよび protected 静的メンバを検索対象に含めるには、BindingFlags.FlattenHierarchy を指定します。継承クラスの private 静的メンバは含まれません。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
詳細については、「System.Reflection.BindingFlags」を参照してください。
このメソッド オーバーロードを使用してクラス初期化子 (.cctor) を取得するには、name に ".cctor" を指定し、bindingAttr に BindingFlags.Static | BindingFlags.NonPublic (Visual Basic の場合は BindingFlags.StaticOrBindingFlags.NonPublic) を指定する必要があります。TypeInitializer プロパティを使用して、クラス初期化子を取得することもできます。
現在の Type が構築ジェネリック型を表している場合、このメソッドは、型パラメータを適切な型の引数で置き換えて MemberInfo を返します。
現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメータを表している場合、このメソッドはクラス制約のメンバを検索します。クラス制約のメンバがない場合は、Object のメンバを検索します。
![]() |
---|
ジェネリック メソッドの場合は、型引数を name に含めないでください。たとえば、C# コード GetMember("MyMethod<int>") は、型 int の汎用引数を 1 つ持っている MyMethod という名前のメソッドではなく、テキスト名 "MyMethod<int>" というメンバを検索します。 |

myString クラスの、文字 C で始まるパブリックな静的メソッドをすべて表示する例を次に示します。
Public Sub GetPublicStaticMemberInfo() Dim myString As [String] = "GetMember_String_BindingFlag" Dim myType As Type = myString.GetType() ' Get the public static members for the class myString starting with the letter C. Dim myMembers As MemberInfo() = myType.GetMember("C*", BindingFlags.Public Or BindingFlags.Static) If myMembers.Length > 0 Then Console.WriteLine(ControlChars.Cr + "The public static member(s) starting with the letter C for type {0}:", myType) Dim index As Integer For index = 0 To myMembers.Length - 1 Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString()) Next index Else Console.WriteLine("No members match the search criteria.") End If End Sub 'GetPublicStaticMemberInfo
public void GetPublicStaticMemberInfo() { String myString = "GetMember_String_BindingFlag"; Type myType = myString.GetType(); // Get the public static members for the class myString starting with the letter C. MemberInfo[] myMembers = myType.GetMember("C*", BindingFlags.Public |BindingFlags.Static); if(myMembers.Length > 0) { Console.WriteLine("\nThe public static member(s) starting with the letter C for type {0}:", myType); for(int index=0; index < myMembers.Length; index++) Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString()); } else Console.WriteLine("No members match the search criteria."); }
void GetPublicStaticMemberInfo() { String^ myString = "GetMember_String_BindingFlag"; Type^ myType = myString->GetType(); // Get the public static members for the class myString starting with the letter C array<MemberInfo^>^myMembers = myType->GetMember( "C*", static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Static) ); if ( myMembers->Length > 0 ) { Console::WriteLine( "\nThe public static member(s) starting with the letter C for type {0}:", myType ); for ( int index = 0; index < myMembers->Length; index++ ) Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] ); } else Console::WriteLine( "No members match the search criteria." ); }
public void GetPublicStaticMemberInfo() { String myString = "GetMember_String_BindingFlag"; Type myType = myString.GetType(); // Get the public static members for the class myString starting with // the letter C. MemberInfo myMembers[] = myType.GetMember("C*", BindingFlags.Public | BindingFlags.Static); if (myMembers.length > 0) { Console.WriteLine("\nThe public static member(s) starting with" + " the letter C for type {0}:", myType); for (int index = 0; index < myMembers.length; index++) { Console.WriteLine("Member {0}: {1}", (Int32)(index + 1), myMembers[index].ToString()); } } else { Console.WriteLine("No members match the search criteria."); } } //GetPublicStaticMemberInfo


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.GetMember メソッド (String, MemberTypes, BindingFlags)
アセンブリ: mscorlib (mscorlib.dll 内)

Public Overridable Function GetMember ( _ name As String, _ type As MemberTypes, _ bindingAttr As BindingFlags _ ) As MemberInfo()
Dim instance As Type Dim name As String Dim type As MemberTypes Dim bindingAttr As BindingFlags Dim returnValue As MemberInfo() returnValue = instance.GetMember(name, type, bindingAttr)
public: virtual array<MemberInfo^>^ GetMember ( String^ name, MemberTypes type, BindingFlags bindingAttr )
public function GetMember ( name : String, type : MemberTypes, bindingAttr : BindingFlags ) : MemberInfo[]
戻り値
指定した名前のパブリック メンバが存在する場合は、そのメンバを表す MemberInfo オブジェクトの配列。それ以外の場合は空の配列。


メンバには、プロパティ、メソッド、フィールド、イベントなどがあります。
このメソッドは、現在のクラスとその基本クラスを検索します。要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは空の配列を返します。
次の BindingFlags フィルタ フラグは、検索対象に含めるメンバを定義するために使用できます。
-
戻り値を取得するには、BindingFlags.Instance または BindingFlags.Static のいずれかを指定する必要があります。
-
検索対象にパブリックではないメンバ (つまり、プライベート メンバやプロテクト メンバ) を含めるための BindingFlags.NonPublic を指定します。
-
階層構造の上位にある public 静的メンバおよび protected 静的メンバを検索対象に含めるには、BindingFlags.FlattenHierarchy を指定します。継承クラスの private 静的メンバは含まれません。
次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。
詳細については、「System.Reflection.BindingFlags」を参照してください。
このメソッド オーバーロードを使用してクラス初期化子 (.cctor) を取得するには、name に ".cctor" を指定し、type に MemberTypes.Constructor を指定し、bindingAttr に BindingFlags.Static | BindingFlags.NonPublic (Visual Basic の場合は BindingFlags.StaticOrBindingFlags.NonPublic) を指定する必要があります。TypeInitializer プロパティを使用して、クラス初期化子を取得することもできます。
現在の T:System.Type が構築ジェネリック型を表している場合、このメソッドは、型パラメータを適切な型の引数で置き換えて MemberInfo を返します。
現在の Type がジェネリック型またはジェネリック メソッドの定義の型パラメータを表している場合、このメソッドはクラス制約のメンバを検索します。クラス制約のメンバがない場合は、Object のメンバを検索します。
![]() |
---|
ジェネリック メソッドの場合は、型引数を name に含めないでください。たとえば、C# コード GetMember("MyMethod<int>") は、型 int の汎用引数を 1 つ持っている MyMethod という名前のメソッドではなく、テキスト名 "MyMethod<int>" というメンバを検索します。 |

myString クラスの、文字 C で始まるメソッドをすべて表示する例を次に示します。
Public Sub GetPublicInstanceMethodMemberInfo() Dim myString As [String] = "GetMember_String_MemberType_BindingFlag" Dim myType As Type = myString.GetType() ' Get the public instance methods for myString starting with the letter C. Dim myMembers As MemberInfo() = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public Or BindingFlags.Instance) If myMembers.Length > 0 Then Console.WriteLine(ControlChars.Cr + "The public instance method(s) starting with the letter C for type {0}:", myType) Dim index As Integer For index = 0 To myMembers.Length - 1 Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString()) Next index Else Console.WriteLine("No members match the search criteria.") End If End Sub 'GetPublicInstanceMethodMemberInfo End Class 'MyMemberSample
public void GetPublicInstanceMethodMemberInfo() { String myString = "GetMember_String_MemberType_BindingFlag"; Type myType = myString.GetType(); // Get the public instance methods for myString starting with the letter C. MemberInfo[] myMembers = myType.GetMember("C*", MemberTypes.Method, BindingFlags.Public | BindingFlags.Instance); if(myMembers.Length > 0) { Console.WriteLine("\nThe public instance method(s) starting with the letter C for type {0}:", myType); for(int index=0; index < myMembers.Length; index++) Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString()); } else Console.WriteLine("No members match the search criteria."); } }
void GetPublicInstanceMethodMemberInfo() { String^ myString = "GetMember_String_MemberType_BindingFlag"; Type^ myType = myString->GetType(); // Get the public instance methods for myString starting with the letter C. array<MemberInfo^>^myMembers = myType->GetMember( "C*", MemberTypes::Method, static_cast<BindingFlags>(BindingFlags::Public | BindingFlags::Instance) ); if ( myMembers->Length > 0 ) { Console::WriteLine( "\nThe public instance method(s) starting with the letter C for type {0}:", myType ); for ( int index = 0; index < myMembers->Length; index++ ) Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] ); } else Console::WriteLine( "No members match the search criteria." ); }
public void GetPublicInstanceMethodMemberInfo() { String myString = "GetMember_String_MemberType_BindingFlag"; Type myType = myString.GetType(); // Get the public instance methods for myString starting with the // letter C. MemberInfo myMembers[] = myType.GetMember("C*", MemberTypes.Method , BindingFlags.Public | BindingFlags.Instance); if (myMembers.length > 0) { Console.WriteLine("\nThe public instance method(s) starting with" + " the letter C for type {0}:", myType); for (int index = 0; index < myMembers.length; index++) { Console.WriteLine("Member {0}: {1}", (Int32)(index + 1) , myMembers[index].ToString()); } } else { Console.WriteLine("No members match the search criteria."); } } //GetPublicInstanceMethodMemberInfo } //MyMemberSample


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


Type.GetMember メソッド

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

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

Dim instance As Type Dim name As String Dim returnValue As MemberInfo() returnValue = instance.GetMember(name)
戻り値
指定した名前のパブリック メンバが存在する場合は、そのメンバを表す MemberInfo オブジェクトの配列。それ以外の場合は空の配列。


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

String クラスの、文字 C で始まるメンバをすべて表示する例を次に示します。
Imports System Imports System.Security Imports System.Reflection Imports Microsoft.VisualBasic Public Class MyMemberSample Public Shared Sub Main() Dim [myClass] As New MyMemberSample() Try [myClass].GetMemberInfo() [myClass].GetPublicStaticMemberInfo() [myClass].GetPublicInstanceMethodMemberInfo() Catch e As ArgumentNullException Console.WriteLine("ArgumentNullException occurred.") Console.WriteLine(("Source: " + e.Source)) Console.WriteLine(("Message: " + e.Message)) Catch e As NotSupportedException Console.WriteLine("NotSupportedException occurred.") Console.WriteLine(("Source: " + e.Source)) Console.WriteLine(("Message: " + e.Message)) Catch e As SecurityException Console.WriteLine("SecurityException occurred.") Console.WriteLine(("Source: " + e.Source)) Console.WriteLine(("Message: " + e.Message)) Catch e As Exception Console.WriteLine("Exception occurred.") Console.WriteLine(("Source: " + e.Source)) Console.WriteLine(("Message: " + e.Message)) End Try End Sub 'Main Public Sub GetMemberInfo() Dim myString As [String] = "GetMember_String" Dim myType As Type = myString.GetType() ' Get the members for myString starting with the letter C. Dim myMembers As MemberInfo() = myType.GetMember("C*") If myMembers.Length > 0 Then Console.WriteLine(ControlChars.Cr + "The member(s) starting with the letter C for type {0}:", myType) Dim index As Integer For index = 0 To myMembers.Length - 1 Console.WriteLine("Member {0}: {1}", index + 1, myMembers(index).ToString()) Next index Else Console.WriteLine("No members match the search criteria.") End If End Sub 'GetMemberInfo
using System; using System.Security; using System.Reflection; public class MyMemberSample { public static void Main() { MyMemberSample myClass = new MyMemberSample(); try { myClass.GetMemberInfo(); myClass.GetPublicStaticMemberInfo(); myClass.GetPublicInstanceMethodMemberInfo(); } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException occurred."); Console.WriteLine("Source: " + e.Source); Console.WriteLine("Message: " + e.Message); } catch(NotSupportedException e) { Console.WriteLine("NotSupportedException occurred."); Console.WriteLine("Source: " + e.Source); Console.WriteLine("Message: " + e.Message); } catch(SecurityException e) { Console.WriteLine("SecurityException occurred."); Console.WriteLine("Source: " + e.Source); Console.WriteLine("Message: " + e.Message); } catch(Exception e) { Console.WriteLine("Exception occurred."); Console.WriteLine("Source: " + e.Source); Console.WriteLine("Message: " + e.Message); } } public void GetMemberInfo() { String myString = "GetMember_String"; Type myType = myString.GetType(); // Get the members for myString starting with the letter C. MemberInfo[] myMembers = myType.GetMember("C*"); if(myMembers.Length > 0) { Console.WriteLine("\nThe member(s) starting with the letter C for type {0}:", myType); for(int index=0; index < myMembers.Length; index++) Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString()); } else Console.WriteLine("No members match the search criteria."); }
using namespace System; using namespace System::Security; using namespace System::Reflection; // forward declarations: void GetMemberInfo(); void GetPublicStaticMemberInfo(); void GetPublicInstanceMethodMemberInfo(); int main() { try { GetMemberInfo(); GetPublicStaticMemberInfo(); GetPublicInstanceMethodMemberInfo(); } catch ( ArgumentNullException^ e ) { Console::WriteLine( "ArgumentNullException occurred." ); Console::WriteLine( "Source: {0}", e->Source ); Console::WriteLine( "Message: {0}", e->Message ); } catch ( NotSupportedException^ e ) { Console::WriteLine( "NotSupportedException occurred." ); Console::WriteLine( "Source: {0}", e->Source ); Console::WriteLine( "Message: {0}", e->Message ); } catch ( SecurityException^ e ) { Console::WriteLine( "SecurityException occurred." ); Console::WriteLine( "Source: {0}", e->Source ); Console::WriteLine( "Message: {0}", e->Message ); } catch ( Exception^ e ) { Console::WriteLine( "Exception occurred." ); Console::WriteLine( "Source: {0}", e->Source ); Console::WriteLine( "Message: {0}", e->Message ); } } void GetMemberInfo() { String^ myString = "GetMember_String"; Type^ myType = myString->GetType(); // Get the members for myString starting with the letter C. array<MemberInfo^>^myMembers = myType->GetMember( "C*" ); if ( myMembers->Length > 0 ) { Console::WriteLine( "\nThe member(s) starting with the letter C for type {0}:", myType ); for ( int index = 0; index < myMembers->Length; index++ ) Console::WriteLine( "Member {0}: {1}", index + 1, myMembers[ index ] ); } else Console::WriteLine( "No members match the search criteria." ); }
import System.*; import System.Security.*; import System.Reflection.*; public class MyMemberSample { public static void main(String[] args) { MyMemberSample myClass = new MyMemberSample(); try { myClass.GetMemberInfo(); myClass.GetPublicStaticMemberInfo(); myClass.GetPublicInstanceMethodMemberInfo(); } catch (ArgumentNullException e) { Console.WriteLine("ArgumentNullException occurred."); Console.WriteLine("Source: " + e.get_Source()); Console.WriteLine("Message: " + e.get_Message()); } catch (NotSupportedException e) { Console.WriteLine("NotSupportedException occurred."); Console.WriteLine("Source: " + e.get_Source()); Console.WriteLine("Message: " + e.get_Message()); } catch (SecurityException e) { Console.WriteLine("SecurityException occurred."); Console.WriteLine("Source: " + e.get_Source()); Console.WriteLine("Message: " + e.get_Message()); } catch (System.Exception e) { Console.WriteLine("Exception occurred."); Console.WriteLine("Source: " + e.get_Source()); Console.WriteLine("Message: " + e.get_Message()); } } //main public void GetMemberInfo() { String myString = "GetMember_String"; Type myType = myString.GetType(); // Get the members for myString starting with the letter C. MemberInfo myMembers[] = myType.GetMember("C*"); if (myMembers.length > 0) { Console.WriteLine("\nThe member(s) starting with the letter C" + " for type {0}:", myType); for (int index = 0; index < myMembers.length; index++) { Console.WriteLine("Member {0}: {1}", (Int32)(index + 1) , myMembers[index].ToString()); } } else { Console.WriteLine("No members match the search criteria."); } } //GetMemberInfo


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.GetMember メソッド

名前 | 説明 |
---|---|
_Type.GetMember (String) | COM オブジェクトに、Type.GetMember メソッドへのバージョンに依存しないアクセスが用意されています。 |
_Type.GetMember (String, BindingFlags) | COM オブジェクトに、Type.GetMember メソッドへのバージョンに依存しないアクセスが用意されています。 |
_Type.GetMember (String, MemberTypes, BindingFlags) | COM オブジェクトに、Type.GetMember メソッドへのバージョンに依存しないアクセスが用意されています。 |

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