OpCodes.Ldind_Ref Pole
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ładuje odwołanie do obiektu jako typ O
(odwołanie do obiektu) na stos oceny pośrednio.
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
Wartość pola
Uwagi
W poniższej tabeli wymieniono format zestawu szesnastkowy instrukcji i microsoft intermediate language (MSIL) wraz z krótkim podsumowaniem referencyjnym:
Format | Format zestawu | Opis |
---|---|---|
50 | ldind.ref | Ładuje odwołanie do obiektu pod adresem addr na stos jako typ O |
Zachowanie przejściowe stosu w kolejności sekwencyjnej jest następujące:
Adres jest wypychany do stosu.
Adres jest zwinięty ze stosu; odwołanie do obiektu znajdującego się pod adresem jest pobierane.
Pobrane odwołanie jest wypychane do stosu.
Instrukcja ldind.ref
pośrednio ładuje obiekt odwołania do określonego adresu (typu native int
, &
lub *) na stos jako typ O
.
ldind
Wszystkie instrukcje są skrótami do Ldobj instrukcji, która określa odpowiednią wbudowaną klasę wartości.
Należy pamiętać, że wartości całkowite mniejsze niż 4 bajty są rozszerzane na int32
(nie native int
), gdy są ładowane do stosu oceny. Wartości zmiennoprzecinkowe są konwertowane na F
typ podczas ładowania do stosu oceny.
Poprawnie sformułowany język Microsoft Intermediate Language (MSIL) zapewnia, że ldind
instrukcje są używane w sposób zgodny z typem wskaźnika.
Adres początkowo wypychany do stosu musi być wyrównany do naturalnego rozmiaru obiektów na maszynie lub NullReferenceException może wystąpić (zobacz Unaligned instrukcję prefiksu dla miar zapobiegawczych). Wyniki wszystkich instrukcji MSIL, które zwracają adresy (na przykład Ldloca i Ldarga) są bezpiecznie wyrównane. W przypadku typów danych większych niż 1 bajt kolejność bajtów zależy od docelowego procesora CPU. Kod, który zależy od kolejności bajtów, może nie być uruchamiany na wszystkich platformach.
NullReferenceException może zostać zgłoszony, jeśli zostanie wykryty nieprawidłowy adres.
Emit Następujące przeciążenie metody może używać ldind.ref
kodu opcode: