다음을 통해 공유


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 

필드 값

설명

다음 표에서는 간단한 참조 요약과 함께 명령의 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 요소 형식으로 암시적으로 캐스팅합니다. 이 캐스트는 확인된 코드의 경우에도 실패할 수 있습니다. 따라서 명령은 을 stelem.ref throw InvalidCastException할 수 있습니다. 0부터 시작하지 않는 1차원 배열의 경우 및 다차원 배열의 경우 클래스는 Array 메서드를 SetValue 제공합니다.

NullReferenceException 가 null 참조이면 array throw됩니다.

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

ArrayTypeMismatchException array 가 필수 형식의 요소를 보유하지 않으면 throw됩니다.

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

적용 대상