OpCodes.Unbox 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.
Konwertuje skrzynkową reprezentację typu wartości na formularz bez skrzynki odbiorczej.
public: static initonly System::Reflection::Emit::OpCode Unbox;
public static readonly System.Reflection.Emit.OpCode Unbox;
staticval mutable Unbox : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox As OpCode
Wartość pola
Uwagi
W poniższej tabeli wymieniono format zestawu szesnastkowy i microsoft intermediate language (MSIL) instrukcji wraz z krótkim podsumowaniem referencyjnym:
Format | Format zestawu | Opis |
---|---|---|
79 <T > |
Unbox valType |
Wyodrębnia dane typu wartości z obj pola . |
Zachowanie przejściowe stosu w kolejności sekwencyjnej to:
Odwołanie do obiektu jest wypychane do stosu.
Odwołanie do obiektu jest wyskoczone ze stosu i rozpakowane do wskaźnika typu wartości.
Wskaźnik typu wartości jest wypychany do stosu.
Typ wartości ma dwie oddzielne reprezentacje w ramach infrastruktury języka wspólnego (CLI):
Formularz "raw" używany, gdy typ wartości jest osadzony w innym obiekcie.
Formularz "boxed", w którym dane w typie wartości są opakowane (pola) do obiektu, aby mogły istnieć jako niezależna jednostka.
Instrukcja unbox
konwertuje odwołanie do obiektu (typ O
), skrzynkową reprezentację typu wartości na wskaźnik typu wartości (zarządzany wskaźnik, typ &
), jego formularz bez skrzynki odbiorczej. Podany typ wartości (valType
) to token metadanych wskazujący typ typu wartości zawartego w polu obiektu.
W przeciwieństwie Boxdo metody , która jest wymagana do utworzenia kopii typu wartości do użycia w obiekcie, unbox
nie jest wymagana do skopiowania typu wartości z obiektu. Zazwyczaj po prostu oblicza adres typu wartości, który jest już obecny wewnątrz obiektu pola.
InvalidCastException jest zgłaszany, jeśli obiekt nie jest polecony jako valType
.
NullReferenceException jest zgłaszany, jeśli odwołanie do obiektu jest odwołaniem o wartości null.
TypeLoadException jest zgłaszany, jeśli nie można odnaleźć typu valType
wartości. Zazwyczaj jest to wykrywane, gdy instrukcje języka Microsoft Intermediate Language (MSIL) są konwertowane na kod natywny, a nie w czasie wykonywania.
Następujące Emit przeciążenie metody może używać unbox
kodu opcode: