ILGenerator.DeclareLocal Méthode

Définition

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

localType
Type

Objet Type qui représente le type de la variable locale.

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

localType
Type

Objet Type qui représente le type de la variable locale.

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.

S’applique à