Nyelv

Binder.BindToMethod Metódus

Definíció

Kiválasztja az adott metóduskészletből meghívni kívánt metódust a megadott argumentumok alapján.

public:
 abstract System::Reflection::MethodBase ^ BindToMethod(System::Reflection::BindingFlags bindingAttr, cli::array <System::Reflection::MethodBase ^> ^ match, cli::array <System::Object ^> ^ % args, cli::array <System::Reflection::ParameterModifier> ^ modifiers, System::Globalization::CultureInfo ^ culture, cli::array <System::String ^> ^ names, [Runtime::InteropServices::Out] System::Object ^ % state);
public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object?[] args, System.Reflection.ParameterModifier[]? modifiers, System.Globalization.CultureInfo? culture, string[]? names, out object? state);
public abstract System.Reflection.MethodBase BindToMethod(System.Reflection.BindingFlags bindingAttr, System.Reflection.MethodBase[] match, ref object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, string[] names, out object state);
abstract member BindToMethod : System.Reflection.BindingFlags * System.Reflection.MethodBase[] * Object[] * System.Reflection.ParameterModifier[] * System.Globalization.CultureInfo * string[] * obj -> System.Reflection.MethodBase
Public MustOverride Function BindToMethod (bindingAttr As BindingFlags, match As MethodBase(), ByRef args As Object(), modifiers As ParameterModifier(), culture As CultureInfo, names As String(), ByRef state As Object) As MethodBase

Paraméterek

bindingAttr
BindingFlags

Értékek bitenkénti kombinációja BindingFlags .

match
MethodBase[]

Az egyezésre jelölt metódusok készlete. Ha például egy Binder objektumot használ InvokeMember, ez a paraméter határozza meg azokat a metódusokat, amelyeket a tükröződés lehetséges egyezésnek határozott meg, általában azért, mert a megfelelő tagnévvel rendelkeznek. A tömb alapértelmezett implementációja DefaultBinder módosítja a tömb sorrendjét.

args
Object[]

Az átadott argumentumok. A kötőelem módosíthatja a tömb argumentumainak sorrendjét; Az alapértelmezett kötés például módosítja az argumentumok sorrendjét, ha a names paraméter a pozíciósorrenden kívüli sorrend megadására szolgál. Ha egy kötés implementációja argumentumtípusokat kényszerít ki, az argumentumok típusai és értékei is módosíthatók.

modifiers
ParameterModifier[]

Paramétermódosítók tömbje, amelyek lehetővé teszik, hogy a kötés olyan paraméter-aláírásokkal működjön, amelyekben a típusok módosultak. Az alapértelmezett kötési implementáció nem használja ezt a paramétert.

culture
CultureInfo

Ennek egy példánya CultureInfo az adattípusok kényszerítésének szabályozására szolgál az olyan kötési implementációkban, amelyek kényszerítik a típusokat. Ha culture igen null, akkor a rendszer az CultureInfo aktuális szálat használja.

names
String[]

A paraméternevek, ha a paraméterneveket figyelembe kell venni az egyeztetéskor, vagy null ha az argumentumokat tisztán pozícióként kell kezelni. A paraméterneveket például akkor kell használni, ha az argumentumok nincsenek helymeghatározó sorrendben megadva.

state
Object

A metódus visszatérése után egy kötőanyag által biztosított objektumot tartalmaz, state amely nyomon követi az argumentumok átrendezését. Az iratgyűjtő létrehozza ezt az objektumot, és a kötőanyag az objektum kizárólagos felhasználója. Ha state nem nullBindToMethod visszatéréskor, state a ReorderArgumentArray(Object[], Object) metódusnak kell átadnia, ha vissza szeretné állítani args az eredeti sorrendbe, például azért, hogy lekérhesse a ref paraméterek értékeit (ByRef paraméterek Visual Basic).

Válaszok

Az egyező metódus.

Kivételek

Az alapértelmezett kötőanyaghoz több metódus is tartozik, match amelyek egyformán jó egyezést jelentenek.args Például tartalmaz egy args objektumot, MyClass amely implementálja az IMyClass interfészt, és match tartalmaz egy metódust, amely a következőt veszi felMyClass, és egy metódust.IMyClass

Az alapértelmezett iratgyűjtő nem tartalmaz olyan metódusokat, match amelyek elfogadhatják a következőben argsmegadott argumentumokat: .

Az alapértelmezett kötőelem matchnull egy üres tömb.

Megjegyzések

Az alapértelmezett iratgyűjtő figyelembe veszi az értékekkel rendelkező paramétereket és params tömböket (ParamArray tömböket Visual Basic). Így olyan esetekben lehet megtalálni egyezést, ahol args és match nem azonos számú elemet tartalmaznak.

A kötés lehetővé teszi, hogy az ügyfél az argumentumok tömbjét az eredeti formájára képezhesse vissza, ha az argumentumtömböt BindToMethodmanipulálta a rendszer. Ezzel az újraképzésével visszakérheti a hivatkozási argumentumokat, ha ilyen argumentumok vannak jelen. Ha név alapján ad át argumentumokat, a kötési szolgáltató átrendezi az argumentumtömböt. A state paraméter nyomon követi az argumentumok átrendezését, így lehetővé teszi, hogy a kötési ReorderArgumentArray metódus átrendezze az argumentumtömböt az eredeti formájára.

A BindToMethod metódus a metódust Type.InvokeMember használja.

Ha a kötőanyag implementációja lehetővé teszi a sztringértékek numerikus típusokra való kényszerítását, a culture paramétert az 1000 értéket képviselő sztring értékké Double alakításához szükséges, mivel az 1000-et különböző kultúrák képviselik. Az alapértelmezett kötőelem nem végez ilyen sztring-kényszerítést.

A következőre érvényes:

Lásd még