次の方法で共有


Type.GetMember メソッド (String, BindingFlags)

指定したバインディング制約を使用して、指定したメンバを検索します。

Overloads Public Overridable Function GetMember( _
   ByVal name As String, _   ByVal bindingAttr As BindingFlags _) As MemberInfo() Implements IReflect.GetMember
[C#]
public virtual MemberInfo[] GetMember(stringname,BindingFlagsbindingAttr);
[C++]
public: virtual MemberInfo* GetMember(String* name,BindingFlagsbindingAttr) [];
[JScript]
public function GetMember(
   name : String,bindingAttr : BindingFlags) : MemberInfo[];

パラメータ

  • name
    取得するメンバの名前を格納している String

  • bindingAttr
    検索の実行方法を指定する 1 つ以上の BindingFlags から成るビット マスク。

    または

    null 参照 (Visual Basic では Nothing) を返す 0。

戻り値

指定した名前のパブリック メンバが存在する場合は、そのメンバを表す MemberInfo オブジェクトの配列。それ以外の場合は null 参照 (Visual Basic では Nothing) 。

実装

IReflect.GetMember

例外

例外の種類 条件
ArgumentNullException name が null 参照 (Visual Basic では Nothing) です。

解説

このメソッドは、派生クラスでオーバーライドできます。

メンバには、プロパティ、メソッド、フィールド、イベントなどがあります。

このメソッドは、現在のクラスとその基本クラスを検索します。要求された型がパブリックではなく、呼び出し元に現在のアセンブリ外の非パブリック オブジェクトをリフレクションするための ReflectionPermission がない場合、このメソッドは null 参照 (Visual Basic では Nothing) を返します。

次の BindingFlags フィルタ フラグは、検索対象に含めるメンバを定義するために使用できます。

  • 検索対象にインスタンスのメンバを含めるための Instance。
  • 検索対象に静的メンバを含めるための Static
  • 検索対象にパブリック メンバを含めるための Public
  • 検索対象にパブリックではないメンバ (つまり、プライベート メンバやプロテクト メンバ) を含めるための NonPublic

次の BindingFlags 修飾フラグは、検索方法を変更するために使用できます。

  • name の大文字と小文字の違いを無視するための IgnoreCase
  • Type で宣言されたメンバだけを検索するための DeclaredOnly 。単に継承されただけのメンバは検索されません。

詳細については、「 System.Reflection.BindingFlags 」を参照してください。

クラス初期化子は、 GetMemberGetMembersFindMembers 、および GetConstructors を通じて使用できます。

使用例

[Visual Basic, C#, C++] 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

[C#] 
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.");    
}

[C++] 
void GetPublicStaticMemberInfo() {
   String*  myString = S"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(S"C*",
      static_cast<BindingFlags>(BindingFlags::Public |BindingFlags::Static));
   if (myMembers->Length > 0) {
      Console::WriteLine(S"\nThe public static member(s) starting with the letter C for type {0}:", myType);
      for (int index=0; index < myMembers->Length; index++)
         Console::WriteLine(S"Member {0}: {1}",__box( index + 1), myMembers->Item[index]);
   } else
      Console::WriteLine(S"No members match the search criteria.");
}

[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 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

.NET Framework セキュリティ:

参照

Type クラス | Type メンバ | System 名前空間 | Type.GetMember オーバーロードの一覧 | MemberInfo | String | BindingFlags | DefaultBinder | ReflectionPermission | GetMembers | GetDefaultMembers | FindMembers