ILGenerator.DeclareLocal ILGenerator.DeclareLocal ILGenerator.DeclareLocal ILGenerator.DeclareLocal Method

定義

ローカル変数を宣言します。Declares a local variable.

オーバーロード

DeclareLocal(Type) DeclareLocal(Type) DeclareLocal(Type) DeclareLocal(Type)

指定した型のローカル変数を宣言します。Declares a local variable of the specified type.

DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean)

指定した型のローカル変数を宣言し、オプションでその変数が参照するオブジェクトを固定します。Declares a local variable of the specified type, optionally pinning the object referred to by the variable.

DeclareLocal(Type) DeclareLocal(Type) DeclareLocal(Type) DeclareLocal(Type)

指定した型のローカル変数を宣言します。Declares a local variable of the specified type.

public:
 virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
abstract member DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
Public Overridable Function DeclareLocal (localType As Type) As LocalBuilder

パラメーター

localType
Type Type Type Type

ローカル変数の型を表す Type オブジェクト。A Type object that represents the type of the local variable.

戻り値

宣言されたローカル変数。The declared local variable.

例外

外側の型が CreateType() メソッドで作成されています。The containing type has been created by the CreateType() method.

次のコード例は、の使用を示します、DeclareLocalメソッド。The following code example demonstrates the use of the DeclareLocal method. このコードのコード例の一部である、LocalBuilderクラス。This code is part of a larger code example for the LocalBuilder class.

// 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)

注釈

現在の構文スコープでローカル変数を作成します。コードが生成されている場合など、forループ (For Visual Basic でのループ)、変数のスコープがループします。The local variable is created in the current lexical scope; for example, if code is being emitted in a for loop (For loop in Visual Basic), the scope of the variable is the loop.

このオーバー ロードで作成されたローカル変数がピン留めされていません。A local variable created with this overload is not pinned. アンマネージ ポインターを使用するためのピン留めされた変数を作成するには、使用、DeclareLocal(Type, Boolean)メソッドのオーバー ロードします。To create a pinned variable for use with unmanaged pointers, use the DeclareLocal(Type, Boolean) method overload.

DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean) DeclareLocal(Type, Boolean)

指定した型のローカル変数を宣言し、オプションでその変数が参照するオブジェクトを固定します。Declares a local variable of the specified type, optionally pinning the object referred to by the variable.

public:
 virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public virtual 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
Public Overridable Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder

パラメーター

localType
Type Type Type Type

ローカル変数の型を表す Type オブジェクト。A Type object that represents the type of the local variable.

pinned
Boolean Boolean Boolean Boolean

メモリ内でオブジェクトを固定する場合は true。それ以外の場合は falsetrue to pin the object in memory; otherwise, false.

戻り値

ローカル変数を表す LocalBuilder オブジェクト。A LocalBuilder object that represents the local variable.

例外

外側の型が CreateType() メソッドで作成されています。The containing type has been created by the CreateType() method.

または-or- 外側のメソッドのメソッド本体が CreateMethodBody(Byte[], Int32) メソッドによって作成されています。The method body of the enclosing method has been created by the CreateMethodBody(Byte[], Int32) method.

この ILGenerator が関連付けられているメソッドが、MethodBuilder で表されていません。The method with which this ILGenerator is associated is not represented by a MethodBuilder.

注釈

現在の構文スコープでローカル変数を作成します。コードが生成されている場合など、forループ (For Visual Basic でのループ)、変数のスコープがループします。The local variable is created in the current lexical scope; for example, if code is being emitted in a for loop (For loop in Visual Basic), the scope of the variable is the loop.

アンセーフ コードは、アンマネージ ポインターでを参照する前にオブジェクトを固定する必要があります。In unsafe code, an object must be pinned before it can be referred to by an unmanaged pointer. 参照先オブジェクトが固定されているときに、ガベージ コレクションによって移動できません。While the referenced object is pinned, it cannot be moved by garbage collection.

適用対象