Type.FindMembersとは? わかりやすく解説

Type.FindMembers メソッド

指定したメンバ型の MemberInfo オブジェクト配列フィルタ適用して返します

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Overridable Function
 FindMembers ( _
    memberType As MemberTypes, _
    bindingAttr As BindingFlags, _
    filter As MemberFilter, _
    filterCriteria As Object _
) As MemberInfo()
Dim instance As Type
Dim memberType As MemberTypes
Dim bindingAttr As BindingFlags
Dim filter As MemberFilter
Dim filterCriteria As Object
Dim returnValue As MemberInfo()

returnValue = instance.FindMembers(memberType, bindingAttr, filter, filterCriteria)
public virtual MemberInfo[] FindMembers (
    MemberTypes memberType,
    BindingFlags bindingAttr,
    MemberFilter filter,
    Object filterCriteria
)
public:
virtual array<MemberInfo^>^ FindMembers (
    MemberTypes memberType, 
    BindingFlags bindingAttr, 
    MemberFilter^ filter, 
    Object^ filterCriteria
)
public MemberInfo[] FindMembers (
    MemberTypes memberType, 
    BindingFlags bindingAttr, 
    MemberFilter filter, 
    Object filterCriteria
)
public function FindMembers (
    memberType : MemberTypes, 
    bindingAttr : BindingFlags, 
    filter : MemberFilter, 
    filterCriteria : Object
) : MemberInfo[]

パラメータ

memberType

検索するメンバの型を示す MemberTypes オブジェクト

bindingAttr

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

または

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

filter

比較実行して、現在調べているメンバfilterCriteria一致する場合true返しそれ以外場合false返すデリゲート。このクラス提供される FilterAttribute デリゲートFilterName デリゲート、および FilterNameIgnoreCase デリゲート使用できます1 つ目のデリゲートは、検索条件として FieldAttributesMethodAttributesMethodImplAttributes の各フィールド使用し、他の 2 つデリゲートは、検索条件として String オブジェクト使用します

filterCriteria

MemberInfo オブジェクト配列メンバ返されたかどうかを判断する検索条件

FieldAttributesMethodAttributesMethodImplAttributes の各フィールドは、このクラス提供される FilterAttribute デリゲート組み合わせて使用できます

戻り値
指定したメンバ型の MemberInfo オブジェクトフィルタ適用済み配列。 または 現在の Type に、フィルタ条件一致する memberType 型のメンバ存在しない場合は、MemberInfo 型の空の配列

例外例外
例外種類条件

ArgumentNullException

filternull 参照 (Visual Basic では Nothing) です。

解説解説

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

メンバには、プロパティメソッドフィールドイベントなどあります要求された型がパブリックではなく呼び出し元に現在のアセンブリ外の非パブリック オブジェクトリフレクションするための ReflectionPermission がない場合、このメソッドnull 参照 (Visual Basic では Nothing) を返します

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

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

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

MemberType の有効な値は、MemberInfo定義されます。それらのメンバが見つからない場合は、空の配列返されます。

このメソッド使用してクラス初期化子 (.cctor) を取得するには、BindingFlags.Static | BindingFlags.NonPublic (Visual Basic の場合BindingFlags.StaticOrBindingFlags.NonPublic) を指定する必要があります。TypeInitializer プロパティ使用してクラス初期化子取得することもできます

現在の Typeジェネリック型またはジェネリック メソッド型パラメータ表している場合FindMembersクラス制約、および型パラメータインターフェイス制約によって宣言されメンバ処理します

使用例使用例

指定した検索条件一致するクラスメンバをすべて検索し一致したメンバ表示する例を次に示します

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Class MyFindMembersClass

    Public Shared Sub Main()
        Dim objTest As New
 Object()
        Dim objType As Type = objTest.GetType()
        Dim arrayMemberInfo() As MemberInfo
        Try
            'Find all static or public methods in the Object 
            'class that match the specified name.
            arrayMemberInfo = objType.FindMembers(MemberTypes.Method, _
                              BindingFlags.Public Or BindingFlags.Static
 _
                              Or BindingFlags.Instance, _
                              New MemberFilter(AddressOf
 DelegateToSearchCriteria), _
                              "ReferenceEquals")

            Dim index As Integer
            For index = 0 To arrayMemberInfo.Length
 - 1
                Console.WriteLine("Result of FindMembers -"
 + ControlChars.Tab + _
                               arrayMemberInfo(index).ToString() + ControlChars.Cr)
            Next index
        Catch e As Exception
            Console.WriteLine("Exception : " + e.ToString())
        End Try
    End Sub 'Main

    Public Shared Function
 DelegateToSearchCriteria _
                            (ByVal objMemberInfo As
 MemberInfo, _
                             ByVal objSearch As
 Object) As Boolean
        ' Compare the name of the member function with the filter criteria.
        If objMemberInfo.Name.ToString() = objSearch.ToString()
 Then
            Return True
        Else
            Return False
        End If
    End Function 'DelegateToSearchCriteria
 
End Class 'MyFindMembersClass
using System;
using System.Reflection;

class MyFindMembersClass
{
    public static void Main()
    {
        Object objTest = new Object();
        Type objType = objTest.GetType ();
        MemberInfo[] arrayMemberInfo;
        try
        {
            //Find all static or public methods in the Object class
 that match the specified name.
            arrayMemberInfo = objType.FindMembers(MemberTypes.Method,
                BindingFlags.Public | BindingFlags.Static| BindingFlags.Instance
,
                new MemberFilter(DelegateToSearchCriteria),
                "ReferenceEquals");

            for(int index=0;index < arrayMemberInfo.Length
 ;index++)
                Console.WriteLine ("Result of FindMembers -\t"+ arrayMemberInfo[index].ToString()
 +"\n");                 
        }
        catch (Exception e)
        {
            Console.WriteLine ("Exception : " + e.ToString() );       
     
        }           
    }
    public static bool DelegateToSearchCriteria(MemberInfo
 objMemberInfo, Object objSearch)
    {
        // Compare the name of the member function with the filter criteria.
        if(objMemberInfo.Name.ToString() == objSearch.ToString())
            return true;
        else 
            return false;
    }
}
using namespace System;
using namespace System::Reflection;
ref class MyFindMembersClass
{
public:
   static void Test()
   {
      Object^ objTest = gcnew Object;
      Type^ objType = objTest->GetType();
      array<MemberInfo^>^arrayMemberInfo;
      try
      {
         
         //Find all static or public methods in the Object class that
 match the specified name.
         arrayMemberInfo = objType->FindMembers( MemberTypes::Method, static_cast<BindingFlags>(BindingFlags::Public
 | BindingFlags::Static | BindingFlags::Instance), gcnew MemberFilter( DelegateToSearchCriteria
 ), "ReferenceEquals" );
         for ( int index = 0; index < arrayMemberInfo->Length;
 index++ )
            Console::WriteLine( "Result of FindMembers -\t {0}", String::Concat(
 arrayMemberInfo[ index ], "\n" ) );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Exception : {0}", e );
      }

   }

   static bool DelegateToSearchCriteria( MemberInfo^
 objMemberInfo, Object^ objSearch )
   {
      
      // Compare the name of the member function with the filter criteria.
      if ( objMemberInfo->Name->Equals( objSearch->ToString()
 ) )
            return true;
      else
            return false;
   }

};

int main()
{
   MyFindMembersClass::Test();
}

import System.*;
import System.Reflection.*;

class MyFindMembersClass
{
    public static void main(String[]
 args)
    {
        Object objTest = new Object();
        Type objType = objTest.GetType();
        MemberInfo arrayMemberInfo[];
        try {
            // Find all static or public methods in the Object class
 that match 
            // the specified name.
            arrayMemberInfo = objType.FindMembers(MemberTypes.Method,
                BindingFlags.Public | BindingFlags.Static
                | BindingFlags.Instance,
                new MemberFilter(DelegateToSearchCriteria), "ReferenceEquals");

            for (int index = 0; index <
 arrayMemberInfo.length; index++) {
                Console.WriteLine("Result of FindMembers -\t"
                    + arrayMemberInfo.get_Item(index).ToString() + "\n");
            }
        }
        catch (System.Exception e) {
            Console.WriteLine("Exception : " + e.ToString());
        }
    } //main

    public static boolean DelegateToSearchCriteria(MemberInfo
 objMemberInfo,
        Object objSearch)
    {
        // Compare the name of the member function with the filter criteria.
        if (objMemberInfo.get_Name().ToString().Equals(objSearch.ToString()))
 {
            return true;
        }
        else {
            return false;
        }
    } //DelegateToSearchCriteria
} //MyFindMembersClass
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
Type クラス
Type メンバ
System 名前空間
MemberInfo
BindingFlags
DefaultBinder
ReflectionPermission
GetMember
GetMembers
GetDefaultMembers

_Type.FindMembers メソッド

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

COM オブジェクトに、Type.FindMembers メソッドへのバージョン依存しないアクセス用意されています。

このメソッドは、CLS準拠していません。  

名前空間: System.Runtime.InteropServices
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Function FindMembers ( _
    memberType As MemberTypes, _
    bindingAttr As BindingFlags, _
    filter As MemberFilter, _
    filterCriteria As Object _
) As MemberInfo()
Dim instance As _Type
Dim memberType As MemberTypes
Dim bindingAttr As BindingFlags
Dim filter As MemberFilter
Dim filterCriteria As Object
Dim returnValue As MemberInfo()

returnValue = instance.FindMembers(memberType, bindingAttr, filter, filterCriteria)
MemberInfo[] FindMembers (
    MemberTypes memberType,
    BindingFlags bindingAttr,
    MemberFilter filter,
    Object filterCriteria
)
array<MemberInfo^>^ FindMembers (
    MemberTypes memberType, 
    BindingFlags bindingAttr, 
    MemberFilter^ filter, 
    Object^ filterCriteria
)
MemberInfo[] FindMembers (
    MemberTypes memberType, 
    BindingFlags bindingAttr, 
    MemberFilter filter, 
    Object filterCriteria
)
function FindMembers (
    memberType : MemberTypes, 
    bindingAttr : BindingFlags, 
    filter : MemberFilter, 
    filterCriteria : Object
) : MemberInfo[]

パラメータ

memberType

検索するメンバの型を示す MemberTypes オブジェクト

bindingAttr

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

または

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

filter

比較実行して、現在調べているメンバfilterCriteria一致する場合true返しそれ以外場合false返すデリゲート。このクラス提供される FilterAttribute デリゲートFilterName デリゲート、および FilterNameIgnoreCase デリゲート使用できます1 つ目のデリゲートは、検索条件として FieldAttributesMethodAttributesMethodImplAttributes の各フィールド使用し、他の 2 つデリゲートは、検索条件として String オブジェクト使用します

filterCriteria

MemberInfo オブジェクト配列メンバ返されたかどうかを判断する検索条件

FieldAttributesMethodAttributesMethodImplAttributes の各フィールドは、このクラス提供される FilterAttribute デリゲート組み合わせて使用できます

戻り値
指定したメンバ型の MemberInfo オブジェクトフィルタ適用済み配列。 または 現在の Type に、フィルタ条件一致する memberType 型のメンバ存在しない場合は、MemberInfo 型の空の配列

解説解説
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Type.FindMembers」の関連用語

Type.FindMembersのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Type.FindMembersのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS