OpCodes.Stelem_Ref Fält

Definition

Ersätter matriselementet vid ett angivet index med objektets referensvärde (typ O) i utvärderingsstacken.

public: static initonly System::Reflection::Emit::OpCode Stelem_Ref;
public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
 staticval mutable Stelem_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stelem_Ref 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
A2 stelem.ref Ersätter ett matriselement vid det angivna indexet ref med värdet (typ O) i stacken.

Stackens övergångsbeteende i sekventiell ordning är:

  1. En objektreferens till en matris, array, skickas till stacken.

  2. Ett giltigt index till ett element i array skickas till stacken.

  3. Ett värde skickas till stacken.

  4. Värdet, indexet och matrisreferensen poppas från stacken. värdet placeras i matriselementet vid det angivna indexet.

Instruktionen stelem.ref ersätter värdet för elementet vid det angivna indexet i den endimensionella matrisen array med värdet ref (typ O) som push-överförts till stacken.

Matriser är objekt och representeras därför av ett värde av typen O. Indexet är typ native int.

Observera att stelem.ref implicit omvandlar det angivna värdet till elementtypen array för innan du tilldelar värdet till matriselementet. Den här gjutningen kan misslyckas, även för verifierad kod. Således kan instruktionen stelem.ref kasta InvalidCastException. För endimensionella matriser som inte är nollbaserade och för flerdimensionella matriser tillhandahåller Array klassen en SetValue metod.

NullReferenceException genereras om array är en null-referens.

IndexOutOfRangeException utlöses om index är negativt eller större än gränsen arrayför .

ArrayTypeMismatchException genereras om array inte innehåller element av den typ som krävs.

Följande Emit metodöverlagring kan använda stelem.ref opcode:

Gäller för