Sdílet prostřednictvím


OpCodes.Stelem_Ref Pole

Definice

Nahradí prvek pole v daném indexu hodnotou odkaz objektu (typ O) ve zkušebním zásobníku.

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 

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
A2 stelem.ref Nahradí prvek pole v zadaném indexu ref hodnotou (typ O) v zásobníku.

Přechodné chování zásobníku v sekvenčním pořadí je:

  1. Odkaz na objekt na pole arrayje vložen do zásobníku.

  2. Platný index elementu v array je vložen do zásobníku.

  3. Hodnota se vloží do zásobníku.

  4. Hodnota, index a odkaz na pole jsou vyneseny ze zásobníku; hodnota je vložena do elementu pole v daném indexu.

Instrukce stelem.ref nahradí hodnotu prvku na zadaném indexu v jednorozměrném poli arrayref hodnotou (typ O) vloženou do zásobníku.

Pole jsou objekty, a proto jsou reprezentované hodnotou typu O. Index je typ native int.

Všimněte si, že stelem.ref implicitně přetypuje zadanou hodnotu na typ array prvku před přiřazením hodnoty k prvku pole. Toto přetypování může selhat i u ověřeného kódu. stelem.ref Instrukce tak může vyvolat InvalidCastException. Pro jednorozměrná pole, která nejsou založená na nule, a pro multidimenzionální pole třída Array poskytuje metodu SetValue .

NullReferenceException je vyvolán, pokud array je odkaz null.

IndexOutOfRangeException je vyvolán, pokud index je záporná nebo větší než mez hodnoty array.

ArrayTypeMismatchException je vyvolán, pokud array neobsahuje prvky požadovaného typu.

Následující Emit přetížení metody může použít stelem.ref opcode:

Platí pro