ILGenerator.DeclareLocal メソッド
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ローカル変数を宣言します。
DeclareLocal(Type, Boolean) |
指定した型のローカル変数を宣言し、オプションでその変数が参照するオブジェクトを固定します。 |
DeclareLocal(Type) |
指定した型のローカル変数を宣言します。 |
- ソース:
- ILGenerator.cs
- ソース:
- ILGenerator.cs
- ソース:
- 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 で表されていません。
注釈
ローカル変数は、現在の字句スコープで作成されます。たとえば、コードがループ (For
Visual Basic のループ) でfor
出力されている場合、変数のスコープはループです。
アンセーフ コードでは、オブジェクトをアンマネージド ポインターで参照するには、その前にピン留めする必要があります。 参照先オブジェクトはピン留めされていますが、ガベージ コレクションでは移動できません。
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
- ソース:
- ILGenerator.cs
- ソース:
- ILGenerator.cs
- ソース:
- 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)
注釈
ローカル変数は、現在の字句スコープで作成されます。たとえば、コードがループ (For
Visual Basic のループ) でfor
出力されている場合、変数のスコープはループです。
このオーバーロードで作成されたローカル変数はピン留めされません。 アンマネージド ポインターで使用する固定変数を作成するには、 メソッドのオーバーロードを DeclareLocal(Type, Boolean) 使用します。
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。