英語で読む

次の方法で共有


ILGenerator.DeclareLocal メソッド

定義

ローカル変数を宣言します。

オーバーロード

DeclareLocal(Type, Boolean)

指定した型のローカル変数を宣言し、オプションでその変数が参照するオブジェクトを固定します。

DeclareLocal(Type)

指定した型のローカル変数を宣言します。

DeclareLocal(Type, Boolean)

ソース:
ILGenerator.cs
ソース:
ILGenerator.cs
ソース:
ILGenerator.cs

指定した型のローカル変数を宣言し、オプションでその変数が参照するオブジェクトを固定します。

C#
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);
C#
public abstract System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);

パラメーター

localType
Type

ローカル変数の型を表す Type オブジェクト。

pinned
Boolean

メモリ内でオブジェクトを固定する場合は true。それ以外の場合は false

戻り値

ローカル変数を表す LocalBuilder オブジェクト。

例外

localTypenullです。

外側の型が 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

DeclareLocal(Type)

ソース:
ILGenerator.cs
ソース:
ILGenerator.cs
ソース:
ILGenerator.cs

指定した型のローカル変数を宣言します。

C#
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
C#
public System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);

パラメーター

localType
Type

ローカル変数の型を表す Type オブジェクト。

戻り値

宣言されたローカル変数。

例外

localTypenullです。

外側の型が CreateType() メソッドで作成されています。

次のコード例は、 メソッドの使用方法を DeclareLocal 示しています。 このコードは、 クラスの大きなコード例の LocalBuilder 一部です。

C#
// 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);

注釈

ローカル変数は、現在の字句スコープで作成されます。たとえば、コードがループ (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