ILGenerator.DeclareLocal 方法

定義

宣告區域變數。

多載

DeclareLocal(Type, Boolean)

宣告指定型別的區域變數,選擇性固定 (Pin) 變數所參考的物件。

DeclareLocal(Type)

宣告指定型別的區域變數。

DeclareLocal(Type, Boolean)

來源:
ILGenerator.cs
來源:
ILGenerator.cs
來源:
ILGenerator.cs

宣告指定型別的區域變數,選擇性固定 (Pin) 變數所參考的物件。

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

若要將物件固定 (Pin) 在記憶體中,則為 true,否則為 false

傳回

LocalBuilder 物件,代表區域變數。

例外狀況

localTypenull

包含型別已由 CreateType() 方法建立。

-或-

封入方法的方法主體已由 CreateMethodBody(Byte[], Int32) 方法建立。

與這個 ILGenerator 關聯的方法不是由 MethodBuilder 代表。

備註

局部變數會在目前的語彙範圍中建立;例如,如果在 Visual Basic) 中的循環 (For 循環中for發出程式代碼,變數的範圍就是迴圈。

在不安全的程序代碼中,對象必須先釘選,才能由 Unmanaged 指標參考。 當參考的物件已釘選時,無法由垃圾收集移動。

適用於

DeclareLocal(Type)

來源:
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
Type

Type 物件,表示區域變數的型別。

傳回

宣告的區域變數。

例外狀況

localTypenull

包含型別已由 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)

備註

局部變數會在目前的語彙範圍中建立;例如,如果在 Visual Basic) 中的循環 (For 循環中for發出程式代碼,變數的範圍就是迴圈。

未釘選使用此多載建立的局部變數。 若要建立與 Unmanaged 指標搭配使用的固定變數,請使用 DeclareLocal(Type, Boolean) 方法多載。

適用於