ILGenerator.DeclareLocal 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지역 변수를 선언합니다.
오버로드
DeclareLocal(Type, Boolean) |
지정한 형식의 지역 변수를 선언하고, 선택적으로 해당 변수가 참조하는 개체를 고정합니다. |
DeclareLocal(Type) |
지정한 형식의 지역 변수를 선언합니다. |
DeclareLocal(Type, Boolean)
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
지정한 형식의 지역 변수를 선언하고, 선택적으로 해당 변수가 참조하는 개체를 고정합니다.
public:
virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public:
abstract System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);
public abstract System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
Public Overridable Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Public MustOverride Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
매개 변수
- pinned
- Boolean
메모리에 개체를 고정하면 true
이고, 그렇지 않으면 false
입니다.
반환
지역 변수를 나타내는 LocalBuilder 개체입니다.
예외
localType
이(가) null
인 경우
포함하는 형식이 CreateType() 메서드에 의해 만들어진 경우
또는
바깥쪽 메서드의 메서드 본문이 CreateMethodBody(Byte[], Int32) 메서드에 의해 만들어진 경우
이 ILGenerator가 연결되어 있는 메서드가 MethodBuilder에 표시되지 않을 경우
설명
지역 변수는 현재 어휘 scope 만들어집니다. 예를 들어 코드가 루프(For
Visual Basic의 루프)에서 for
내보내는 경우 변수의 scope 루프입니다.
안전하지 않은 코드에서는 관리되지 않는 포인터로 개체를 참조하기 전에 개체를 고정해야 합니다. 참조된 개체는 고정되어 있지만 가비지 수집으로 이동할 수 없습니다.
적용 대상
DeclareLocal(Type)
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
지정한 형식의 지역 변수를 선언합니다.
public:
virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType);
public:
System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
public System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
abstract member DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
member this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
Public Overridable Function DeclareLocal (localType As Type) As LocalBuilder
Public Function DeclareLocal (localType As Type) As LocalBuilder
매개 변수
반환
선언된 지역 변수입니다.
예외
localType
이(가) null
인 경우
포함하는 형식이 CreateType() 메서드에 의해 만들어진 경우
예제
다음 코드 예제에서는 DeclareLocal
메서드. 이 코드는 클래스에 대한 더 큰 코드 예제의 LocalBuilder 일부입니다.
// Create local variables named myString and myInt.
LocalBuilder^ myLB1 = myMethodIL->DeclareLocal( String::typeid );
myLB1->SetLocalSymInfo( "myString" );
Console::WriteLine( "local 'myString' type is: {0}", myLB1->LocalType );
LocalBuilder^ myLB2 = myMethodIL->DeclareLocal( int::typeid );
myLB2->SetLocalSymInfo( "myInt", 1, 2 );
Console::WriteLine( "local 'myInt' type is: {0}", myLB2->LocalType );
// Create local variables named myString and myInt.
LocalBuilder myLB1 = myMethodIL.DeclareLocal(typeof(string));
myLB1.SetLocalSymInfo("myString");
Console.WriteLine("local 'myString' type is: {0}", myLB1.LocalType);
LocalBuilder myLB2 = myMethodIL.DeclareLocal(typeof(int));
myLB2.SetLocalSymInfo("myInt", 1, 2);
Console.WriteLine("local 'myInt' type is: {0}", myLB2.LocalType);
' Create local variables named myString and myInt.
Dim myLB1 As LocalBuilder = myMethodIL.DeclareLocal(GetType(String))
myLB1.SetLocalSymInfo("myString")
Console.WriteLine("local 'myString' type is: {0}", myLB1.LocalType)
Dim myLB2 As LocalBuilder = myMethodIL.DeclareLocal(GetType(Integer))
myLB2.SetLocalSymInfo("myInt", 1, 2)
Console.WriteLine("local 'myInt' type is: {0}", myLB2.LocalType)
설명
지역 변수는 현재 어휘 scope 만들어집니다. 예를 들어 코드가 루프(For
Visual Basic의 루프)에서 for
내보내는 경우 변수의 scope 루프입니다.
이 오버로드를 사용하여 만든 지역 변수는 고정되지 않습니다. 관리되지 않는 포인터와 함께 사용할 고정된 변수를 만들려면 메서드 오버로드를 DeclareLocal(Type, Boolean) 사용합니다.
적용 대상
.NET