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 spuštění (CER).
Přetížení
| Name | Description |
|---|---|
| PrepareMethod(RuntimeMethodHandle) |
Připraví metodu pro zahrnutí do oblasti omezeného spuště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 spuště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í provedených uvnitř oblasti omezeného spuštění (CER). V době kompilace JIT modul runtime common language obvykle nemá dostatek informací o cíli virtuálního volání. Modul runtime proto zpočátku nepřípravě tohoto segmentu grafu volání. Pokud kód, který používá CER, má dostatek znalostí k určení cíle v libovolném okamžiku před tím, než se cer skutečně zadá, může volat PrepareMethod(RuntimeMethodHandle) provedení stejné přípravy 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
Pomocí metody můžete poskytnout podporu obecných typů pro kompilátory PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) . Modul CLR (Common Language Runtime) nemůže připravit omezené oblasti provádění (CERS) v metodě, která má parametry obecného typu (buď parametr typu ve třídě obsahující metodu, nebo samotnou metodu), 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ů), určení parametrů typu třídy jako první (pokud existuje) následovaných parametry typu metody (pokud existuje). Modul runtime připraví instanci metody. (To je nutné pouze v případě, že instance, které použijete, obsahují alespoň jeden parametr typu odkazu.) Proto můžete použít klauzuli ve stylu try CER v obecné metodě (nebo negenerické metodě pro obecnou třídu) a bude spolehlivě fungovat s instancemi Int32 nebo jinými typy hodnot. Chcete-li vytvořit instanci referenčních typů, jako Stringje , musíte nejprve použít explicitní PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) metodu v kořenové metodě CER.