다음을 통해 공유


OpCodes.Stloc 필드

정의

평가 스택의 맨 위에서 현재 값을 팝하고 지정된 인덱스의 지역 변수 목록에 저장합니다.

public: static initonly System::Reflection::Emit::OpCode Stloc;
public static readonly System.Reflection.Emit.OpCode Stloc;
 staticval mutable Stloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stloc As OpCode 

필드 값

설명

다음 표에는 간단한 참조 요약과 함께 명령의 16진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식이 나와 있습니다.

서식 어셈블리 형식 Description
FE 0E <unsigned int16> stloc index 스택에서 값을 팝하고 지역 변수 index에 저장합니다.

스택 전환 동작은 순차적으로 다음과 같습니다.

  1. 값이 스택에서 튀어나와 지역 변수 index에 배치됩니다.

명령은 stloc 평가 스택에서 최상위 값을 팝하고 지역 변수 번호 index로 이동합니다. 여기서 지역 변수는 0부터 번호가 매겨집니다. 값의 형식은 현재 메서드의 로컬 서명에 지정된 대로 지역 변수의 형식과 일치해야 합니다.

4바이트보다 작은 정수 값을 보유하는 로컬에 저장하면 스택에서 지역 변수로 이동할 때 값이 잘립니다. 부동 소수점 값은 네이티브 크기(형식 F)에서 인수와 연결된 크기로 반올림됩니다.

올바른 MSIL(Microsoft Intermediate Language) 지침은 유효한 로컬 인덱스여야 합니다 index . 명령의 stloc 경우 는 index 0에서 65534까지의 범위에 있어야 합니다(특히 65535는 유효하지 않음). 65535를 제외하는 이유는 실용적입니다. 가능한 구현은 2 바이트 정수를 사용하여 로컬의 인덱스뿐만 아니라 지정된 메서드의 총 로컬 수를 추적합니다. 인덱스 65535가 유효한 경우 이러한 메서드의 지역 주민 수를 추적하려면 더 넓은 정수가 필요합니다.

다음 Emit 메서드 오버로드는 opcode를 stloc 사용할 수 있습니다.

적용 대상