ILGenerator.DeclareLocal Метод

Определение

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

Перегрузки

Имя Описание
DeclareLocal(Type, Boolean)

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

DeclareLocal(Type)

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

DeclareLocal(Type, Boolean)

Исходный код:
ILGenerator.cs
Исходный код:
ILGenerator.cs
Исходный код:
ILGenerator.cs
Исходный код:
ILGenerator.cs
Исходный код:
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 , представляющий локальную переменную.

Исключения

localType равно null.

Содержащий тип был создан методом CreateType() .

–или–

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

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

Комментарии

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

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

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

DeclareLocal(Type)

Исходный код:
ILGenerator.cs
Исходный код:
ILGenerator.cs
Исходный код:
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(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) метода.

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