OpCodes.Ldind_U1 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í.
Nepřímo načte hodnotu typu unsigned int8
jako hodnotu do int32
zásobníku vyhodnocení.
public: static initonly System::Reflection::Emit::OpCode Ldind_U1;
public static readonly System.Reflection.Emit.OpCode Ldind_U1;
staticval mutable Ldind_U1 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_U1 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 |
---|---|---|
47 | ldind.u1 | Načte unsigned int8 hodnotu adresy addr do zásobníku int32 jako . |
Přechodné chování zásobníku v sekvenčním pořadí je:
Adresa se vloží do zásobníku.
Adresa se vynořila ze zásobníku; hodnota umístěná na adrese se načte.
Načtená hodnota se vloží do zásobníku.
Instrukce ldind.u1
nepřímo načte unsigned int8
hodnotu ze zadané adresy (typunative int
&
, nebo *) do zásobníku int32
jako .
ldind
Všechny instrukce jsou zkratky pro Ldobj instrukce, která určuje odpovídající předdefinované hodnotové třídy.
Všimněte si, že celočíselné hodnoty menší než 4 bajty jsou při načtení do vyhodnocovacího zásobníku rozšířeny na int32
(ne native int
). Hodnoty s plovoucí desetinou čárkou se při načtení do F
zásobníku vyhodnocení převedou na typ.
Správně vytvořený jazyk MSIL (Microsoft Intermediate Language) zajišťuje, že ldind
se instrukce použijí způsobem konzistentním s typem ukazatele.
Adresa původně vložená do zásobníku musí být zarovnaná s přirozenou NullReferenceException velikostí objektů na počítači, jinak může dojít k chybě (viz Unaligned instrukce předpony pro preventivní opatření). Výsledky všech instrukcí jazyka MSIL, Ldloca které vracejí adresy (například 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 pořadí bajtů, nemusí běžet na všech platformách.
NullReferenceException může být vyvolána, pokud je zjištěna neplatná adresa.
Následující Emit přetížení metody může použít ldind.u1
opcode: