OpCodes.Ldflda Pole
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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:
Odkaz na objekt (nebo ukazatel) je vložen do zásobníku.
Odkaz na objekt (nebo ukazatel) je vyskočil ze zásobníku; byla nalezena adresa zadaného pole v objektu.
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: