OpCodes.Castclass Campo

Definizione

Tenta di eseguire il cast di un oggetto passato per riferimento alla classe specificata.

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 

Valore del campo

OpCode
Attributi

Commenti

La tabella seguente elenca il formato dell'assembly esadecimale e Microsoft Intermediate Language (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
74 < T > castclass class Esegue il cast di un oggetto in un nuovo oggetto di tipo class.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Un riferimento all'oggetto viene eseguito il push nello stack.

  2. Il riferimento all'oggetto viene rimosso dallo stack; l'oggetto a cui viene fatto riferimento viene eseguito il cast come specificato class.

  3. In caso di esito positivo, viene eseguito il push di un nuovo riferimento a un oggetto nello stack.

L'istruzione castclass tenta di eseguire il cast del riferimento all'oggetto (tipo O) in cima allo stack a una classe specificata. La nuova classe viene specificata da un token di metadati che indica la classe desiderata. Se la classe dell'oggetto nella parte superiore dello stack non implementa la nuova classe (presupponendo che la nuova classe sia un'interfaccia) e non sia una classe derivata della nuova classe, viene generata un'eccezione InvalidCastException . Se il riferimento all'oggetto è un riferimento Null, castclass riesce e restituisce il nuovo oggetto come riferimento Null.

InvalidCastException viene generato se obj non può essere eseguito il cast alla classe.

TypeLoadException viene generato se non è possibile trovare la classe. Questo viene in genere rilevato quando un'istruzione MSIL (Microsoft Intermediate Language) viene convertita in codice nativo anziché in fase di esecuzione.

L'overload del metodo seguente Emit può usare il castclass codice opcode:

Si applica a