RuntimeHelpers.PrepareMethod Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Připraví metodu pro zahrnutí do oblasti omezeného provádění (CER).
Přetížení
PrepareMethod(RuntimeMethodHandle) |
Připraví metodu pro zahrnutí do oblasti omezeného provádění (CER). |
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
Připraví metodu pro zahrnutí do oblasti omezeného spuštění (CER) se zadanou instancí. |
PrepareMethod(RuntimeMethodHandle)
Připraví metodu pro zahrnutí do oblasti omezeného provádění (CER).
public:
static void PrepareMethod(RuntimeMethodHandle method);
public static void PrepareMethod (RuntimeMethodHandle method);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method);
static member PrepareMethod : RuntimeMethodHandle -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle)
Parametry
- method
- RuntimeMethodHandle
Popisovač metody, která se má připravit.
- Atributy
Poznámky
Kompilátory používají metodu PrepareMethod(RuntimeMethodHandle) ke zpracování virtuálních volání, která jsou provedena uvnitř oblasti omezeného provádění (CER). V době kompilace JIT modul CLR obvykle nemá dostatek informací o cíli virtuálního volání. Modul runtime proto na začátku nepřipraví tento segment grafu volání. Pokud má kód, který používá CER, dostatek znalostí k určení cíle v libovolném okamžiku v čase před tím, než je skutečně zadán cer, může voláním PrepareMethod(RuntimeMethodHandle) provést stejnou přípravu modulu runtime, která se obvykle provádí pro CER rooted v metodě zadané jako argument.
Platí pro
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
Připraví metodu pro zahrnutí do oblasti omezeného spuštění (CER) se zadanou instancí.
public:
static void PrepareMethod(RuntimeMethodHandle method, cli::array <RuntimeTypeHandle> ^ instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[]? instantiation);
[System.Security.SecurityCritical]
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
public static void PrepareMethod (RuntimeMethodHandle method, RuntimeTypeHandle[] instantiation);
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
[<System.Security.SecurityCritical>]
static member PrepareMethod : RuntimeMethodHandle * RuntimeTypeHandle[] -> unit
Public Shared Sub PrepareMethod (method As RuntimeMethodHandle, instantiation As RuntimeTypeHandle())
Parametry
- method
- RuntimeMethodHandle
Popisovač metody, která se má připravit.
- instantiation
- RuntimeTypeHandle[]
Instance, která se má předat metodě.
- Atributy
Poznámky
Obecnou podporu pro kompilátory můžete poskytnout pomocí metody .PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) Modul CLR (Common Language Runtime) nemůže připravit oblasti omezeného provádění (CER) rootované v metodě, která má parametry obecného typu (buď parametr typu ve třídě obsahující metodu, nebo parametr v samotné metodě), pokud jsou tyto parametry typu vytvořena jako odkazové typy.
Toto přetížení můžete použít k předání konkrétní instance (například pole typů), zadání parametrů typu třídy nejprve (pokud jsou k)) a následně parametry typu metody (pokud jsou nějaké). Modul runtime připraví instanci metody . (To je nutné pouze v případě, že instance, které používáte, obsahují alespoň jeden parametr typu odkazu.) Proto můžete použít klauzuli typu try
CER v obecné metodě (nebo negenerické metodě pro obecnou třídu) a bude spolehlivě fungovat s instancemi Int32 nebo jinými typy hodnot. Pokud chcete vytvořit instanci odkazových typů, jako Stringje , musíte nejprve použít explicitní PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) metodu pro kořenovou metodu CER.