OpCodes.Ldflda Fält

Definition

Hittar adressen till ett fält i objektet vars referens för närvarande finns i utvärderingsstacken.

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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
7C <T> ldflda field Push-överför adressen field för i ett angivet objekt till stacken.

Stackens övergångsbeteende i sekventiell ordning är:

  1. En objektreferens (eller pekare) skickas till stacken.

  2. Objektreferensen (eller pekaren) visas från stacken. adressen till det angivna fältet i objektet hittas.

  3. Adressen för det angivna fältet skickas till stacken.

Instruktionen ldflda skickar adressen till ett fält som finns i ett objekt till stacken. Objektet måste finnas på stacken som en objektreferens (typ O), en hanterad pekare (typ &), en ohanterad pekare (typ native int), en tillfällig pekare (typ *) eller en instans av en värdetyp. Användning av en ohanterad pekare tillåts inte i verifierbar kod. Objektets fält anges av en metadatatoken som måste referera till en fältmedlem.

Värdet som returneras av ldflda är en hanterad pekare (typ &) om inte objektet skickas till stacken som en ohanterad pekare, i vilket fall returadressen också är en ohanterad pekare (typ native int).

Instruktionen ldflda kan föregås av antingen eller båda prefixen Unaligned och Volatile .

InvalidOperationException genereras om objektet inte finns i programdomänen som det används från. Det går inte att läsa in adressen för ett fält som inte finns i programdomänen som kommer åt.

NullReferenceException genereras om objektet är null och fältet inte är statiskt.

MissingFieldException genereras om det angivna fältet inte hittas i metadata. Detta kontrolleras vanligtvis när instruktioner för Microsoft mellanliggande språk (MSIL) konverteras till intern kod, inte vid körning.

Följande Emit metodöverlagring kan använda ldflda opcode:

Gäller för