OpCodes.Castclass 欄位

定義

嘗試將參考所傳遞的物件轉型為指定的類別。

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
[System.Runtime.InteropServices.ComVisible(true)]
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
[<System.Runtime.InteropServices.ComVisible(true)>]
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 

欄位值

屬性

備註

下表列出指示的十六進位和 Microsoft Intermediate Language (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
74 <T> castclass class 將物件轉換成 型 class別的新物件。

堆疊轉換行為會依循序順序為:

  1. 對象參考會推送至堆疊。

  2. 對象參考會從堆疊快顯;參考的物件會轉換成指定的 class

  3. 如果成功,則會將新的對象參考推送至堆疊。

指令 castclass 會嘗試將對象參考 (類型 O) 堆疊頂端轉換成指定的類別。 新類別是由指出所需類別的元數據標記所指定。 如果堆疊頂端的物件類別未實作新的類別, (假設新類別是介面) ,而且不是新類別的衍生類別,則會 InvalidCastException 擲回 。 如果對象參考是 Null 參考, castclass 會成功並傳回新的 物件做為 Null 參考。

InvalidCastException 如果 obj 無法轉換成類別,則會擲回 。

TypeLoadException 如果找不到類別,則會擲回 。 當 Microsoft Intermediate Language (MSIL) 指令轉換成機器碼,而不是運行時間時,通常會偵測到此狀況。

下列 Emit 方法多載可以使用 castclass opcode:

適用於