Compartir vía


ILGenerator.DeclareLocal Método

Definición

Declara una variable local.

Sobrecargas

DeclareLocal(Type, Boolean)

Declara una variable local del tipo especificado, y ancla opcionalmente el objeto al que hace referencia la variable.

DeclareLocal(Type)

Declara una variable local del tipo especificado.

DeclareLocal(Type, Boolean)

Source:
ILGenerator.cs
Source:
ILGenerator.cs
Source:
ILGenerator.cs

Declara una variable local del tipo especificado, y ancla opcionalmente el objeto al que hace referencia la variable.

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

Parámetros

localType
Type

Objeto Type que representa el tipo de la variable local.

pinned
Boolean

true para anclar el objeto en memoria; de lo contrario, false.

Devoluciones

Objeto LocalBuilder que representa la variable local.

Excepciones

localType es null.

El método CreateType() ha creado el tipo contenedor.

o bien

El método CreateMethodBody(Byte[], Int32) ha creado el cuerpo del método contenedor.

El método al que se encuentra asociado este objeto ILGenerator no está representado por un objeto MethodBuilder.

Comentarios

La variable local se crea en el ámbito léxico actual; por ejemplo, si se emite código en un for bucle (For bucle en Visual Basic), el ámbito de la variable es el bucle .

En el código no seguro, se debe anclar un objeto antes de que un puntero no administrado pueda hacer referencia a él. Mientras el objeto al que se hace referencia está anclado, no se puede mover mediante la recolección de elementos no utilizados.

Se aplica a

DeclareLocal(Type)

Source:
ILGenerator.cs
Source:
ILGenerator.cs
Source:
ILGenerator.cs

Declara una variable local del tipo especificado.

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

Parámetros

localType
Type

Objeto Type que representa el tipo de la variable local.

Devoluciones

Variable local declarada.

Excepciones

localType es null.

El método CreateType() ha creado el tipo contenedor.

Ejemplos

En el ejemplo de código siguiente se muestra el uso del DeclareLocal método . Este código forma parte de un ejemplo de código más grande para la LocalBuilder clase .

// 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)

Comentarios

La variable local se crea en el ámbito léxico actual; por ejemplo, si se emite código en un for bucle (For bucle en Visual Basic), el ámbito de la variable es el bucle .

Una variable local creada con esta sobrecarga no está anclada. Para crear una variable anclada para su uso con punteros no administrados, use la sobrecarga del DeclareLocal(Type, Boolean) método .

Se aplica a