OpCodes.Ldind_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í.
Načte odkaz na objekt jako typ O (odkaz na objekt) do zásobníku vyhodnocení nepřímo.
public: static initonly System::Reflection::Emit::OpCode Ldind_Ref;
public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
staticval mutable Ldind_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_Ref As OpCode
Hodnota pole
Poznámky
Následující tabulka uvádí šestnáctkový formát sestavení jazyka MSIL (Intermediate Language) a Microsoft s stručným přehledem referenčních informací:
| Formát | Formát sestavení | Description |
|---|---|---|
| 50 | ldind.ref | Načte odkaz na objekt na adresu addr do zásobníku jako typ. O |
Přechodné chování zásobníku v sekvenčním pořadí je:
Adresa se nasdílí do zásobníku.
Adresa se přepíná ze zásobníku; odkaz na objekt umístěný na adrese je načten.
Načtený odkaz se vloží do zásobníku.
Instrukce ldind.ref nepřímo načte objekt odkaz na zadanou adresu (typu native int, &nebo *) do zásobníku jako typ O.
ldind Všechny pokyny jsou zkratky pro Ldobj instrukce, která určuje odpovídající integrovanou třídu hodnot.
Všimněte si, že celočíselné hodnoty menší než 4 bajty jsou při načtení do zkušebního zásobníku rozšířeny na int32 (ne native int). Hodnoty s plovoucí desetinou čárkou se při načtení do zkušebního zásobníku převedou na F typ.
Správně formátovaný Microsoft intermediate language (MSIL) zajišťuje, aby ldind instrukce byly použity způsobem konzistentním s typem ukazatele.
Adresa původně vložená do zásobníku musí být zarovnaná k přirozené velikosti objektů na počítači nebo NullReferenceException může dojít (viz Unaligned instrukce předpony pro preventivní míry). Výsledky všech pokynů jazyka MSIL, které vrací adresy (například Ldloca a Ldarga) jsou bezpečně zarovnané. U datových typů větších než 1 bajt závisí pořadí bajtů na cílovém procesoru. Kód, který závisí na řazení bajtů, nemusí běžet na všech platformách.
NullReferenceException může být vyvolána, pokud je zjištěna neplatná adresa.
Emit Následující přetížení metody může použít ldind.ref opcode: