OpCodes.Ldarga Field

Definition

Load an argument address onto the evaluation stack.

C#
public static readonly System.Reflection.Emit.OpCode Ldarga;

Field Value

Remarks

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
FE 0A < unsigned int16 > ldarga index Fetch the address of argument indexed by index.

The stack transitional behavior, in sequential order, is:

  1. The address addr of the argument indexed by index is pushed onto the stack.

The ldarga instruction fetches the address (of type &) of the argument indexed by index, where arguments are indexed from 0 onwards. The address addr is always aligned to a natural boundary on the target machine. The argument is stored in unmanaged memory, so the return value can be converted to an unmanaged pointer without pinning.

For procedures that take a variable-length argument list, the ldarga instruction can be used only for the initial fixed arguments, not those in the variable part of the signature.

ldarga is used for by-ref parameter passing. For other cases, Ldarg and Starg should be used.

The following Emit method overload can use the ldarga opcode:

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0