Condividi tramite


ILGenerator.DeclareLocal Metodo

Definizione

Dichiara una variabile locale.

Overload

DeclareLocal(Type, Boolean)

Dichiara una variabile locale del tipo specificato che facoltativamente può bloccare l'oggetto a cui fa riferimento la variabile.

DeclareLocal(Type)

Dichiara una variabile locale del tipo specificato.

DeclareLocal(Type, Boolean)

Origine:
ILGenerator.cs
Origine:
ILGenerator.cs
Origine:
ILGenerator.cs

Dichiara una variabile locale del tipo specificato che facoltativamente può bloccare l'oggetto a cui fa riferimento la variabile.

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

Parametri

localType
Type

Oggetto Type che rappresenta il tipo della variabile locale.

pinned
Boolean

true per bloccare l'oggetto in memoria; in caso contrario, false.

Restituisce

Oggetto LocalBuilder che rappresenta la variabile locale.

Eccezioni

localType è null.

Il tipo contenitore è stato creato dal metodo CreateType().

-oppure-

Il corpo del metodo contenitore è stato creato dal metodo CreateMethodBody(Byte[], Int32).

Il metodo a cui l'oggetto ILGenerator è associato non è rappresentato da un oggetto MethodBuilder.

Commenti

La variabile locale viene creata nell'ambito lexicale corrente; ad esempio, se il codice viene generato in un for ciclo (For ciclo in Visual Basic), l'ambito della variabile è il ciclo.

Nel codice non sicuro, un oggetto deve essere aggiunto prima di poter essere fatto riferimento a da un puntatore non gestito. Mentre l'oggetto a cui viene fatto riferimento viene aggiunto, non può essere spostato da Garbage Collection.

Si applica a

DeclareLocal(Type)

Origine:
ILGenerator.cs
Origine:
ILGenerator.cs
Origine:
ILGenerator.cs

Dichiara una variabile locale del tipo specificato.

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

Parametri

localType
Type

Oggetto Type che rappresenta il tipo della variabile locale.

Restituisce

Variabile locale dichiarata.

Eccezioni

localType è null.

Il tipo contenitore è stato creato dal metodo CreateType().

Esempio

Nell'esempio di codice seguente viene illustrato l'uso DeclareLocal del metodo. Questo codice fa parte di un esempio di codice più grande per la LocalBuilder classe.

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

Commenti

La variabile locale viene creata nell'ambito lexicale corrente; ad esempio, se il codice viene generato in un for ciclo (For ciclo in Visual Basic), l'ambito della variabile è il ciclo.

Una variabile locale creata con questo overload non viene aggiunta. Per creare una variabile aggiunta da usare con puntatori non gestiti, usare l'overload del DeclareLocal(Type, Boolean) metodo.

Si applica a