System.Reflection.Emit.OpCodes.Unbox_Any Field

Converts the boxed representation of a type specified in the instruction to its unboxed form.

Syntax

public static readonly OpCode Unbox_Any

Remarks

The following table lists the instruction's hexadecimal and Microsoft intermediate language (MSIL) assembly format, along with a brief reference summary:

A5 < T >

unbox.any typeTok

Extract the data from obj, its boxed representation.

The stack transitional behavior, in sequential order, is:

[The 'ordered' type of list has not been implemented in the ECMA stylesheet.]

When applied to the boxed form of a value type, the unbox.any instruction extracts the value contained within obj (of type O), and is therefore equivalent to unbox followed by ldobj.

When applied to a reference type, the unbox.any instruction has the same effect as castclass  typeTok.

If the operand typeTok is a generic type parameter, then the runtime behavior is determined by the type that is specified for that generic type parameter.

InvalidCastException is thrown if obj is not a boxed type.

NullReferenceException is thrown if obj is a null reference.

The following ILGenerator.Emit(OpCode) method overload can use the unbox.any opcode:

  • ILGenerator.Emit(OpCode, Type)

Requirements

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 2.0.0.0, 4.0.0.0
Since: .NET 2.0