Udostępnij za pośrednictwem


OpCodes.Unbox Pole

Definicja

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 objpola .

Zachowanie przejściowe stosu w kolejności sekwencyjnej to:

  1. Odwołanie do obiektu jest wypychane do stosu.

  2. Odwołanie do obiektu jest wyskoczone ze stosu i rozpakowane do wskaźnika typu wartości.

  3. 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:

Dotyczy