OpCodes.Ldfld Campo

Definizione

Trova il valore di un campo nell'oggetto il cui riferimento è attualmente nello stack di valutazione.

public: static initonly System::Reflection::Emit::OpCode Ldfld;
public static readonly System.Reflection.Emit.OpCode Ldfld;
 staticval mutable Ldfld : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldfld As OpCode 

Valore del campo

Commenti

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

Formato Formato assembly Descrizione
7B <T> ldfld field Inserisce nello stack il valore di un campo in un oggetto specificato.

Il comportamento transitorio dello stack, in ordine sequenziale, è:

  1. Viene eseguito il push di un riferimento all'oggetto (o puntatore) nello stack.

  2. Il riferimento all'oggetto (o puntatore) viene estratto dallo stack; viene trovato il valore del campo specificato nell'oggetto .

  3. Il valore archiviato nel campo viene inserito nello stack.

L'istruzione ldfld inserisce il valore di un campo situato in un oggetto nello stack. L'oggetto deve trovarsi nello stack come riferimento all'oggetto (tipo O), un puntatore gestito (tipo &), un puntatore non gestito (tipo native int), un puntatore temporaneo (tipo *) o un'istanza di un tipo valore. L'uso di un puntatore non gestito non è consentito nel codice verificabile. Il campo dell'oggetto viene specificato da un token di metadati che deve fare riferimento a un membro del campo. Il tipo restituito corrisponde a quello associato al campo. Il campo può essere un campo di istanza (nel qual caso l'oggetto non deve essere un riferimento Null) o un campo statico.

L'istruzione ldfld può essere preceduta da o da entrambi i Unaligned prefissi e Volatile .

NullReferenceException viene generata se l'oggetto è Null e il campo non è statico.

MissingFieldException viene generata se il campo specificato non viene trovato nei metadati. Questo viene in genere controllato quando Microsoft istruzioni MSIL (Intermediate Language) vengono convertite in codice nativo, non in fase di esecuzione.

L'overload del metodo seguente Emit può usare il ldfld codice operativo:

Si applica a