Binder.BindToMethod Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.