ILGenerator.DeclareLocal 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
宣告區域變數。
多載
DeclareLocal(Type, Boolean) |
宣告指定型別的區域變數,選擇性固定 (Pin) 變數所參考的物件。 |
DeclareLocal(Type) |
宣告指定型別的區域變數。 |
DeclareLocal(Type, Boolean)
宣告指定型別的區域變數,選擇性固定 (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
參數
- pinned
- Boolean
若要將物件固定 (Pin) 在記憶體中,則為 true
,否則為 false
。
傳回
LocalBuilder 物件,代表區域變數。
例外狀況
localType
為 null
。
與這個 ILGenerator 關聯的方法不是由 MethodBuilder 代表。
備註
局部變數會在目前的語彙範圍中建立;例如,如果在 Visual Basic) 中的循環 (For
循環中for
發出程式代碼,變數的範圍就是迴圈。
在不安全的程序代碼中,對象必須先釘選,才能由 Unmanaged 指標參考。 當參考的物件已釘選時,無法由垃圾收集移動。
適用於
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
為 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)
備註
局部變數會在目前的語彙範圍中建立;例如,如果在 Visual Basic) 中的循環 (For
循環中for
發出程式代碼,變數的範圍就是迴圈。
未釘選使用此多載建立的局部變數。 若要建立與 Unmanaged 指標搭配使用的固定變數,請使用 DeclareLocal(Type, Boolean) 方法多載。