Windows apps
Collapse the table of content
Expand the table of content
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

OpCodes.Ldelem_Ref Field

Loads the element containing an object reference at a specified array index onto the top of the evaluation stack as type O (object reference).

[Visual Basic]
Public Shared ReadOnly Ldelem_Ref As OpCode
public static readonly OpCode Ldelem_Ref;
public: static OpCode Ldelem_Ref;
public static var Ldelem_Ref : OpCode;


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

Format Assembly Format Description
9A ldelem.ref Loads the element with an object reference at index onto the top of the stack as type O.

The stack transitional behavior, in sequential order, is:

  1. An object reference array is pushed onto the stack.
  2. An index value index is pushed onto the stack.
  3. index and array are popped from the stack; the value stored at position index in array is looked up.
  4. The value is pushed onto the stack.

The ldelem.ref instruction loads the value of the element with index index (type natural int) in the zero-based one-dimensional array array and places it on the top of the stack. Arrays are objects and hence represented by a value of type O.

The return value for ldelem.ref is type O (object reference).

NullReferenceException is thrown if array is a null reference.

ArrayTypeMismatchException is thrown if if array does not hold elements of the required type. IndexOutOfRangeException is thrown if index is negative, or larger than the bound of array.

The following Emit constructor overload can use the ldelem.ref opcode:

  • ILGenerator.Emit(OpCode)


Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

OpCodes Class | OpCodes Members | System.Reflection.Emit Namespace

© 2018 Microsoft