ILGenerator.DeclareLocal 메서드

정의

지역 변수를 선언합니다.

오버로드

DeclareLocal(Type, Boolean)

지정한 형식의 지역 변수를 선언하고, 선택적으로 해당 변수가 참조하는 개체를 고정합니다.

DeclareLocal(Type)

지정한 형식의 지역 변수를 선언합니다.

DeclareLocal(Type, Boolean)

지정한 형식의 지역 변수를 선언하고, 선택적으로 해당 변수가 참조하는 개체를 고정합니다.

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

매개 변수

localType
Type

지역 변수의 형식을 나타내는 Type 개체입니다.

pinned
Boolean

메모리에 개체를 고정하면 true이고, 그렇지 않으면 false입니다.

반환

지역 변수를 나타내는 LocalBuilder 개체입니다.

예외

localType이(가) null인 경우

포함하는 형식이 CreateType() 메서드에 의해 만들어진 경우

또는

바깥쪽 메서드의 메서드 본문이 CreateMethodBody(Byte[], Int32) 메서드에 의해 만들어진 경우

ILGenerator가 연결되어 있는 메서드가 MethodBuilder에 표시되지 않을 경우

설명

지역 변수는 현재 어휘 scope 만들어집니다. 예를 들어 코드가 루프(ForVisual Basic의 루프)에서 for 내보내는 경우 변수의 scope 루프입니다.

안전하지 않은 코드에서는 관리되지 않는 포인터가 개체를 참조하기 전에 개체를 고정해야 합니다. 참조된 개체가 고정되어 있는 동안에는 가비지 수집을 통해 이동할 수 없습니다.

적용 대상

DeclareLocal(Type)

지정한 형식의 지역 변수를 선언합니다.

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
Type

지역 변수의 형식을 나타내는 Type 개체입니다.

반환

선언된 지역 변수입니다.

예외

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 만들어집니다. 예를 들어 코드가 루프(ForVisual Basic의 루프)에서 for 내보내는 경우 변수의 scope 루프입니다.

이 오버로드를 사용하여 만든 지역 변수는 고정되지 않습니다. 관리되지 않는 포인터와 함께 사용할 고정된 변수를 만들려면 메서드 오버로드를 DeclareLocal(Type, Boolean) 사용합니다.

적용 대상