Sdílet prostřednictvím


OpCodes.Ldflda Pole

Definice

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

public: static initonly System::Reflection::Emit::OpCode Ldflda;
public static readonly System.Reflection.Emit.OpCode Ldflda;
 staticval mutable Ldflda : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldflda 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
7C <T> Ldflda field Nasdílí adresu objektu field 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; byla nalezena adresa zadaného pole v objektu.

  3. Adresa zadaného pole se odešle do zásobníku.

Instrukce ldflda odešle adresu 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.

Hodnota vrácená nástrojem ldflda je spravovaný ukazatel (typ &), pokud není objekt vložen do zásobníku jako nespravovaný ukazatel. V takovém případě je návratová adresa také nespravovaným ukazatelem (typ native int).

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

InvalidOperationException vyvolá se, pokud objekt není v doméně aplikace, ze které se k němu přistupuje. Adresu pole, které není uvnitř domény aplikace, která přistupuje, nelze načíst.

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 ldflda opcode:

Platí pro