다음을 통해 공유


OpCodes.Stelem_Ref 필드

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

네임스페이스: System.Reflection.Emit
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Shared ReadOnly Stelem_Ref As OpCode
‘사용 방법
Dim value As OpCode

value = OpCodes.Stelem_Ref
public static readonly OpCode Stelem_Ref
public:
static initonly OpCode Stelem_Ref
public static final OpCode Stelem_Ref
public static final var Stelem_Ref : OpCode

설명

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

형식

어셈블리 형식

설명

A2

stelem.ref

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

다음과 같이 순차적으로 스택 전환 동작이 발생합니다.

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

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

  3. 값이 스택으로 푸시됩니다.

  4. 값, 인덱스 및 배열 참조가 스택에서 팝되고 값은 지정된 인덱스의 배열 요소로 추가됩니다.

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

배열은 개체이므로 O 형식의 값으로 나타냅니다. 인덱스는 natural int 형식을 갖습니다.

stelem.ref는 배열 요소에 값을 할당하기 전에 주어진 값을 array의 요소 형식에 암시적으로 캐스팅합니다. 확인할 수 있는 코드인 경우에도 캐스트가 실패할 수 있습니다. 이렇게 되면 stelem.ref 명령이 InvalidCastException을 throw할 수 있습니다. 0부터 시작하지 않는 1차원 배열이나 다차원 배열의 경우 Array 클래스가 SetValue 메서드를 제공합니다.

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

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

array가 필요한 형식의 요소를 포함하지 않으면 ArrayTypeMismatchException이 throw됩니다.

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

  • ILGenerator.Emit(OpCode)

플랫폼

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

참고 항목

참조

OpCodes 클래스
OpCodes 멤버
System.Reflection.Emit 네임스페이스