TypeFilter Delegato
Definizione
public delegate bool TypeFilter(Type ^ m, System::Object ^ filterCriteria);
public delegate bool TypeFilter(Type m, object? filterCriteria);
public delegate bool TypeFilter(Type m, object filterCriteria);
[System.Serializable]
public delegate bool TypeFilter(Type m, object filterCriteria);
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public delegate bool TypeFilter(Type m, object filterCriteria);
type TypeFilter = delegate of Type * obj -> bool
[<System.Serializable>]
type TypeFilter = delegate of Type * obj -> bool
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeFilter = delegate of Type * obj -> bool
Public Delegate Function TypeFilter(m As Type, filterCriteria As Object) As Boolean
Parametri
- m
- Type
Oggetto Type
a cui viene applicato il filtro.The Type
object to which the filter is applied.
- filterCriteria
- Object
Oggetto arbitrario usato per filtrare l'elenco.An arbitrary object used to filter the list.
Valore restituito
true
per includere Type nell'elenco filtrato; in caso contrario, false
.true
to include the Type in the filtered list; otherwise false
.
- Ereditarietà
- Attributi
Esempio
In questo esempio viene illustrato come definire un metodo corrispondente al TypeFilter prototipo delegato, che consente di utilizzare la reflection per filtrare o restituire un subset di voci corrispondenti.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
Commenti
Il TypeFilter
delegato viene usato per filtrare un elenco di classi.The TypeFilter
delegate is used to filter a list of classes. In particolare, viene usato per filtrare le classi rappresentate in una matrice di Type oggetti.Specifically, you use it to filter the classes represented in an array of Type objects. Il Type.FindInterfaces metodo utilizza questo delegato per filtrare l'elenco di interfacce che restituisce.The Type.FindInterfaces method uses this delegate to filter the list of interfaces that it returns. Ogni classe derivata di Delegate e MulticastDelegate dispone di un costruttore e di un DynamicInvoke
metodo.Every derived class of Delegate and MulticastDelegate has a constructor and a DynamicInvoke
method. Vedere l'esempio di codice Visual C++ fornito nella descrizione di Delegate
.See the Visual C++ code example given in the description for Delegate
.
Metodi di estensione
GetMethodInfo(Delegate) |
Ottiene un oggetto che rappresenta il metodo rappresentato dal delegato specificato.Gets an object that represents the method represented by the specified delegate. |