ILGenerator.DeclareLocal 方法

定义

声明局部变量。

重载

名称 说明
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

参数

localType
Type

一个 Type 表示局部变量类型的对象。

pinned
Boolean

true 将对象固定到内存中;否则,为 false.

返回

一个 LocalBuilder 表示局部变量的对象。

例外

localTypenull

方法已创建 CreateType() 包含类型。

-或-

封闭方法的方法正文已由 CreateMethodBody(Byte[], Int32) 该方法创建。

与此 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
Type

一个 Type 表示局部变量类型的对象。

返回

声明的局部变量。

例外

localTypenull

方法已创建 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) 方法重载。

适用于