Sdílet prostřednictvím


OpCodes.Ldfld Pole

Definice

Vyhledá hodnotu pole v objektu, jehož odkaz je aktuálně ve zkušebním zásobníku.

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 

Hodnota pole

Poznámky

Následující tabulka uvádí šestnáctkový formát sestavení instrukce a formát sestavení MSIL (Microsoft Intermediate Language) spolu se stručným přehledem referencí:

Formát Formát sestavení Description
7B <T> Ldfld field Nasdílí hodnotu pole v zadaném objektu do zásobníku.

Přechodné chování zásobníku v sekvenčním pořadí je:

  1. Odkaz na objekt (nebo ukazatel) je vložen do zásobníku.

  2. Odkaz na objekt (nebo ukazatel) je vyskočil ze zásobníku; hodnota zadaného pole v objektu byla nalezena.

  3. Hodnota uložená v poli se odešle do zásobníku.

Instrukce ldfld vloží hodnotu pole umístěného v objektu do zásobníku. Objekt musí být v zásobníku jako odkaz na objekt (typ O), spravovaný ukazatel (typ &), nespravovaný ukazatel (typ native int), přechodný ukazatel (typ *) nebo instance typu hodnoty. Použití nespravovaného ukazatele není v ověřitelném kódu povoleno. Pole objektu je určeno tokenem metadat, který musí odkazovat na člena pole. Návratový typ je stejný jako typ přidružený k poli. Pole může být buď pole instance (v takovém případě nesmí být objekt null odkaz) nebo statické pole.

Pokynu ldfld může předcházet předpona nebo obě Unaligned předpony a Volatile .

NullReferenceException je vyvolán, pokud má objekt hodnotu null a pole není statické.

MissingFieldException vyvolá se, pokud zadané pole není v metadatech nalezeno. To se obvykle kontroluje, když jsou instrukce jazyka MSIL (Microsoft Intermediate Language) převedeny na nativní kód, nikoli za běhu.

Následující Emit přetížení metody může použít ldfld opcode:

Platí pro