ILGenerator.DeclareLocal Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Déclare une variable locale.
Surcharges
| Nom | Description |
|---|---|
| DeclareLocal(Type, Boolean) |
Déclare une variable locale du type spécifié, éventuellement épinglage de l’objet référencé par la variable. |
| DeclareLocal(Type) |
Déclare une variable locale du type spécifié. |
DeclareLocal(Type, Boolean)
Déclare une variable locale du type spécifié, éventuellement épinglage de l’objet référencé par la variable.
public:
virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public virtual 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
Public Overridable Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Paramètres
- pinned
- Boolean
true pour épingler l’objet en mémoire ; sinon, false.
Retours
Objet LocalBuilder qui représente la variable locale.
Exceptions
localType a la valeur null.
Le type conteneur a été créé par la CreateType() méthode.
-ou-
Le corps de la méthode englobante a été créé par la CreateMethodBody(Byte[], Int32) méthode.
Méthode avec laquelle cela ILGenerator est associé n’est pas représentée par un MethodBuilder.
Remarques
La variable locale est créée dans l’étendue lexicale actuelle ; par exemple, si le code est émis dans une boucle for (boucle For dans Visual Basic), l’étendue de la variable est la boucle.
Dans le code non sécurisé, un objet doit être épinglé avant de pouvoir être référencé par un pointeur non managé. Bien que l’objet référencé soit épinglé, il ne peut pas être déplacé par garbage collection.
S’applique à
DeclareLocal(Type)
Déclare une variable locale du type spécifié.
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);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(Type localType);
member this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
abstract member DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
Public Function DeclareLocal (localType As Type) As LocalBuilder
Public Overridable Function DeclareLocal (localType As Type) As LocalBuilder
Paramètres
Retours
Variable locale déclarée.
Exceptions
localType a la valeur null.
Le type conteneur a été créé par la CreateType() méthode.
Exemples
L’exemple de code suivant illustre l’utilisation de la DeclareLocal méthode. Ce code fait partie d’un exemple de code plus grand pour la LocalBuilder classe.
// 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)
Remarques
La variable locale est créée dans l’étendue lexicale actuelle ; par exemple, si le code est émis dans une boucle for (boucle For dans Visual Basic), l’étendue de la variable est la boucle.
Une variable locale créée avec cette surcharge n’est pas épinglée. Pour créer une variable épinglée à utiliser avec des pointeurs non managés, utilisez la DeclareLocal(Type, Boolean) surcharge de méthode.