Export (0) Print
Expand All
Expand Minimize

OpCodes.Stloc Field

Pops the current value from the top of the evaluation stack and stores it in a the local variable list at a specified index.

Namespace:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public static readonly OpCode Stloc

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 0E < unsigned int16 >

stloc index

Pops a value from the stack and stores it in local variable index.

The stack transitional behavior, in sequential order, is:

  1. A value is popped off of the stack and placed in local variable index.

The stloc instruction pops the top value off the evaluation stack and moves it into local variable number index, where local variables are numbered 0 onwards. The type of the value must match the type of the local variable as specified in the current method's local signature.

Storing into locals that hold an integer value smaller than 4 bytes long truncates the value as it moves from the stack to the local variable. Floating-point values are rounded from their native size (type F) to the size associated with the argument.

Correct Microsoft Intermediate Language (MSIL) instructions require that index be a valid local index. For the stloc instruction, index must lie in the range 0 to 65534 inclusive (specifically, 65535 is not valid). The reason for excluding 65535 is pragmatic: likely implementations will use a 2-byte integer to track both a local's index, as well as the total number of locals for a given method. If an index of 65535 had been made valid, it would require a wider integer to track the number of locals in such a method.

The following Emit method overloads can use the stloc opcode:

  • ILGenerator.Emit(OpCode, LocalBuilder)

  • ILGenerator.Emit(OpCode, short)

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Store apps

Supported in: Windows 8

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft