OpCodes.Stelem_Ref 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í.
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:
Odkaz na objekt na pole
array
je vložen do zásobníku.Platný index elementu v
array
je vložen do zásobníku.Hodnota se vloží do zásobníku.
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 array
ref
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: