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