OpCodes.Stelem_Ref 필드

정의

주어진 인덱스에 있는 배열 요소를 계산 스택에 있는 개체 참조 값(O 형식)으로 바꿉니다.

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

필드 값

OpCode

설명

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

서식 어셈블리 형식 Description
A2 stelem.ref 제공된 인덱스의 배열 요소를 스택의 ref 값(형식 O)으로 바꿉니다.

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

  1. 배열 array에 대한 개체 참조가 스택에 푸시됩니다.

  2. 요소 array 에 대한 유효한 인덱스가 스택에 푸시됩니다.

  3. 값이 스택에 푸시됩니다.

  4. 값, 인덱스 및 배열 참조는 스택에서 팝됩니다. 값은 지정된 인덱스에서 배열 요소에 배치됩니다.

stelem.ref 명령은 1차원 배열 array 의 제공된 인덱스에 있는 요소의 값을 스택에 푸시된 (typeO) 값으로 ref 바꿉니다.

배열은 개체이므로 형식 O의 값으로 표시됩니다. 인덱스가 형식 native int입니다.

stelem.ref 배열 요소에 값을 할당하기 전에 제공된 값을 요소 형식 array 으로 암시적으로 캐스팅합니다. 확인된 코드의 경우에도 이 캐스트가 실패할 수 있습니다. 따라서 명령이 throwInvalidCastExceptionstelem.ref 수 있습니다. 0부터 시작하는 1차원 배열 및 다차원 배열의 경우 클래스는 Array 메서드를 SetValue 제공합니다.

NullReferenceException 는 null 참조인 경우 array throw됩니다.

IndexOutOfRangeException가 음수이거나 경계보다 array크면 index throw됩니다.

ArrayTypeMismatchException 는 필수 형식의 요소를 포함하지 않는 경우 array throw됩니다.

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

적용 대상