RuntimeHelpers.PrepareMethod 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
準備一種方法以納入受限執行區域(CER)。
多載
| 名稱 | Description |
|---|---|
| PrepareMethod(RuntimeMethodHandle) |
準備一種方法以納入受限執行區域(CER)。 |
| PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) |
準備一種方法,以包含於受限執行區域(CER)中,並以指定實例化。 |
PrepareMethod(RuntimeMethodHandle)
準備一種方法以納入受限執行區域(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)
參數
- method
- RuntimeMethodHandle
準備方法的說明。
- 屬性
備註
編譯器會用此 PrepareMethod(RuntimeMethodHandle) 方法處理在受限執行區域(CER)內進行的虛擬呼叫。 在 JIT 編譯時,通用語言執行時通常沒有足夠資訊關於虛擬呼叫的目標。 因此,執行時不會最初準備呼叫圖的該段。 如果使用 CER 的程式碼有足夠知識,能在 CER 實際輸入前的任何時間點判斷目標,即可呼叫 PrepareMethod(RuntimeMethodHandle) 執行與通常根於參數方法的 CER 相同的執行時準備。
適用於
PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[])
準備一種方法,以包含於受限執行區域(CER)中,並以指定實例化。
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);
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())
參數
- method
- RuntimeMethodHandle
準備方法的說明。
- instantiation
- RuntimeTypeHandle[]
實例化傳遞給方法。
- 屬性
備註
你可以透過此 PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) 方法為編譯器提供通用支援。 當這些類型參數實例化為參考型別時,通用語言執行時無法準備根植於具有通用型別參數的方法(無論是包含該方法的類別中的型別參數,或是方法本身的型別參數)的受限執行區域(CER)。
你可以利用這個超載傳遞特定的實例化(例如一組型別的陣列),先指定類別型別參數(如果有的話),接著是方法型別參數(如果有的話)。 執行時會準備方法的實例化。 (只有當你使用的實例包含至少一個參考型態參數時,才需要這樣做。)因此,你可以在泛型方法中使用 CER 風格 try 的子句(或在泛型類別上使用非泛型方法),它能可靠地處理 實 Int32 例化或其他值型別。 要實例化像 String這樣的參考類型,必須先在 CER 根方法上使用明確 PrepareMethod(RuntimeMethodHandle, RuntimeTypeHandle[]) 的方法。