Sdílet prostřednictvím


RuntimeHelpers.PrepareMethod Metoda

Definice

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)

Zdroj:
RuntimeHelpers.CoreCLR.cs
Zdroj:
RuntimeHelpers.CoreCLR.cs
Zdroj:
RuntimeHelpers.CoreCLR.cs

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[])

Zdroj:
RuntimeHelpers.CoreCLR.cs
Zdroj:
RuntimeHelpers.CoreCLR.cs
Zdroj:
RuntimeHelpers.CoreCLR.cs

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.

Platí pro