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
Параметры
- 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
имеет значение 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) метода .