TypeFilter TypeFilter TypeFilter TypeFilter Delegate

定義

篩選 Type 物件陣列中表示的類別。Filters the classes represented in an array of Type objects.

public delegate bool TypeFilter(Type ^ m, System::Object ^ filterCriteria);
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public delegate bool TypeFilter(Type m, object filterCriteria);
type TypeFilter = delegate of Type * obj -> bool
Public Delegate Function TypeFilter(m As Type, filterCriteria As Object) As Boolean 

參數

m
Type Type Type Type

要套用篩選條件的 Type 物件。The Type object to which the filter is applied.

filterCriteria
Object Object Object Object

用來篩選清單的任意物件。An arbitrary object used to filter the list.

傳回值

System.Boolean

若要在篩選清單中包含 Type,則為 true;否則為 falsetrue to include the Type in the filtered list; otherwise false.

繼承
TypeFilterTypeFilterTypeFilterTypeFilter
屬性

範例

這個範例示範如何定義符合TypeFilter委派原型的方法, 讓您可以使用反映來篩選或傳回相符專案的子集。This example shows how to define a method matching the TypeFilter delegate prototype allowing you to use reflection to filter or return a subset of matching entries.

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 three interfaces;
'    Two are defined in this assembly.
'    One is defined in another assembly.
Public Class MyRetailer
    Implements IBookRetailer, IMusicRetailer, IComparable

    ' For demonstration purposes, this method returns nothing.
    Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
        Return Nothing
    End Function

    ' For demonstration purposes only, this method does nothing.
    Public Sub ApplyDiscount() Implements IBookRetailer.ApplyDiscount
    End Sub

    ' For demonstration purposes only, this method does nothing.
    Public Sub Purchase() Implements IBookRetailer.Purchase
    End Sub

    ' For demonstration purposes only, this method does nothing.
    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 retailerType As Type = GetType(MyRetailer)
        Dim interfaces() As Type = _
            retailerType.FindInterfaces(AddressOf TypeFilter, retailerType.Assembly.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):")
        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 defined interface.
    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
' The example displays the following output:
'    MyRetailer implements the following interfaces (defined in this assembly):
'      IBookRetailer
'      IMusicRetailer

備註

TypeFilter委派是用來篩選類別的清單。The TypeFilter delegate is used to filter a list of classes. 具體而言, 您可以使用它來篩選Type物件陣列中表示的類別。Specifically, you use it to filter the classes represented in an array of Type objects. Type.FindInterfaces方法會使用這個委派來篩選它所傳回的介面清單。The Type.FindInterfaces method uses this delegate to filter the list of interfaces that it returns. DynamicInvokeDelegateMulticastDelegate每個衍生類別都有一個函式和方法。Every derived class of Delegate and MulticastDelegate has a constructor and a DynamicInvoke method. 請參閱的C++描述中提供的視覺效果程式Delegate代碼範例。See the Visual C++ code example given in the description for Delegate.

擴充方法

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

取得表示特定委派所代表之方法的物件。Gets an object that represents the method represented by the specified delegate.

適用於

另請參閱