ILGenerator.DeclareLocal Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
- 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
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.