TypeFilter デリゲート
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Delegate Function TypeFilter ( _ m As Type, _ filterCriteria As Object _ ) As Boolean
[SerializableAttribute] [ComVisibleAttribute(true)] public delegate bool TypeFilter ( Type m, Object filterCriteria )
[SerializableAttribute] [ComVisibleAttribute(true)] public delegate bool TypeFilter ( Type^ m, Object^ filterCriteria )
/** @delegate */ /** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public delegate boolean TypeFilter ( Type m, Object filterCriteria )
戻り値
フィルタ適用後のリストに、指定した Type オブジェクトが含まれる場合は true。それ以外の場合は false。

TypeFilter デリゲートを使用して、クラスのリストにフィルタを適用します。特に、Type オブジェクトの配列で表されたクラスにフィルタを適用する場合に、このデリゲートを使用します。Type.FindInterfaces メソッドは、このデリゲートを使用してインターフェイスのリストにフィルタを適用してから、そのリストを返します。Delegate および MulticastDelegate のすべての派生クラスには、コンストラクタと DynamicInvoke メソッドがあります。Delegate の説明で示した C++ マネージ拡張コード例を参照してください。

この例では、リフレクションを使用して一致したエントリのサブセットをフィルタ処理するか、返すことができるようにする TypeFilter デリゲートのプロトタイプに一致させるメソッドを定義する方法を示しています。
Imports system Imports system.Reflection ' This interface is defined in this assembly. Public Interface IBookRetailer Sub Purchase() Sub ApplyDiscount() End Interface ' This interface is also defined in this assembly. Public Interface IMusicRetailer Sub Purchase() End Interface ' This class implements four interfaces; two are defined in this assembly and two are defined in another assembly. Public Class MyRetailer Implements IBookRetailer, IMusicRetailer, IComparable, ICloneable ' For demonstration purposes, this method returns nothing; it just allows the code to compile. Public Function Clone() As Object Implements System.ICloneable.Clone Return Nothing End Function ' For demonstration purposes, this method returns nothing; it just allows the code to compile. Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo Return Nothing End Function ' For demonstration purposes, this method returns nothing; it just allows the code to compile. Public Sub ApplyDiscout() Implements IBookRetailer.ApplyDiscount End Sub ' For demonstration purposes, this method returns nothing; it just allows the code to compile. Public Sub Purchase() Implements IBookRetailer.Purchase End Sub ' For demonstration purposes, this method returns nothing; it just allows the code to compile. Public Sub Purchase1() Implements IMusicRetailer.Purchase End Sub End Class Module Module1 Sub Main() ' Find the interfaces defined by the MyRetailer class. Each interface found is passed to ' the TypeFilter method which checks if the interface is defined in the executing assembly. Dim interfaces() As Type = _ GetType(MyRetailer).FindInterfaces(AddressOf TypeFilter, Assembly.GetExecutingAssembly().GetName().ToString()) ' Show the interfaces that are defined in this assembly that are also implemented by MyRetailer. Console.WriteLine("MyRetailer implements the following interfaces (defined in this assembly):") Dim t As Type For Each t In interfaces Console.WriteLine(" {0}", t.Name) Next End Sub ' This method is called by the FindInterfaces method. ' This method is called once per interface defined. Function TypeFilter(ByVal t As Type, ByVal filterCriteria As Object) As Boolean ' Return true if interface is defined in the same ' assembly identified by the filterCriteria object. Return t.Assembly.GetName().ToString() = CType(filterCriteria, String) End Function End Module ' Output will vary based on the contents of the C drive. ' ' This code produces the following output. ' MyRetailer implements the following interfaces (defined in this assembly): ' IBookRetailer ' IMusicRetailer

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- TypeFilter デリゲートのページへのリンク