ILGenerator.DeclareLocal 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
声明局部变量。
重载
| 名称 | 说明 |
|---|---|
| DeclareLocal(Type, Boolean) |
声明指定类型的局部变量,可以选择固定变量所引用的对象。 |
| DeclareLocal(Type) |
声明指定类型的局部变量。 |
DeclareLocal(Type, Boolean)
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
声明指定类型的局部变量,可以选择固定变量所引用的对象。
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);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(Type localType, bool pinned);
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
Public MustOverride Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Public Overridable Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
参数
- pinned
- Boolean
true 将对象固定到内存中;否则,为 false.
返回
一个 LocalBuilder 表示局部变量的对象。
例外
localType 是 null。
与此 ILGenerator 关联的方法不由 a MethodBuilder表示。
注解
局部变量是在当前词法范围内创建的;例如,如果在 for 循环(Visual Basic中的 For 循环中发出代码),则变量的范围是循环。
在不安全的代码中,必须先固定对象,然后才能由非托管指针引用该对象。 固定引用的对象时,垃圾回收无法移动它。
适用于
DeclareLocal(Type)
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- ILGenerator.cs
- Source:
- 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(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) 方法重载。