ILGenerator.DeclareLocal Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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
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 .