OpCodes.Ldfld Fält

Definition

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

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 

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
7B <T> ldfld field Push-överför värdet för ett fält 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. värdet för det angivna fältet i objektet hittas.

  3. Värdet som lagras i fältet skickas till stacken.

Instruktionen ldfld överför värdet för 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. Returtypen är samma som den som är associerad med fältet. Fältet kan vara antingen ett instansfält (i vilket fall objektet inte får vara en null-referens) eller ett statiskt fält.

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

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

Gäller för