Поделиться через


ILGenerator.DeclareLocal Метод

Определение

Объявляет локальную переменную.

Перегрузки

DeclareLocal(Type, Boolean)

Объявляет локальную переменную определенного типа; дополнительно может закрепить объект, на который ссылается переменная.

DeclareLocal(Type)

Объявляет локальную переменную определенного типа.

DeclareLocal(Type, Boolean)

Исходный код:
ILGenerator.cs
Исходный код:
ILGenerator.cs
Исходный код:
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.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

Значение true для закрепления объекта в памяти; в противном случае — значение false.

Возвращаемое значение

Объект LocalBuilder, который представляет локальную переменную.

Исключения

localType имеет значение null.

Включающий тип был создан с помощью метода CreateType().

-или-

Основной текст включающего метода был создан с помощью метода CreateMethodBody(Byte[], Int32).

Метод, с которым связан этот объект ILGenerator, не представлен MethodBuilder.

Комментарии

Локальная переменная создается в текущем лексическом область; например, если код создается в for цикле (For цикл в Visual Basic), область переменной является цикл .

В небезопасном коде объект должен быть закреплен, прежде чем на него можно будет ссылаться с помощью неуправляемого указателя. Пока объект, на который указывает ссылка, закреплен, его нельзя переместить с помощью сборки мусора.

Применяется к

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, который представляет тип локальной переменной.

Возвращаемое значение

Объявленная локальная переменная.

Исключения

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)

Комментарии

Локальная переменная создается в текущем лексическом область; например, если код создается в for цикле (For цикл в Visual Basic), область переменной является цикл .

Локальная переменная, созданная с помощью этой перегрузки, не закреплена. Чтобы создать закрепленную переменную для использования с неуправляемыми указателями, используйте перегрузку DeclareLocal(Type, Boolean) метода .

Применяется к