ILGenerator.DeclareLocal Méthode

Définition

Déclare une variable locale.

Surcharges

DeclareLocal(Type, Boolean)

Déclare une variable locale du type spécifié, en épinglant éventuellement l'objet auquel la variable fait référence.

DeclareLocal(Type)

Déclare une variable locale du type spécifié.

DeclareLocal(Type, Boolean)

Source:
ILGenerator.cs
Source:
ILGenerator.cs
Source:
ILGenerator.cs

Déclare une variable locale du type spécifié, en épinglant éventuellement l'objet auquel la variable fait référence.

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

Paramètres

localType
Type

Objet Type représentant le type de 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éé à l'aide de la méthode CreateType().

- ou -

Le corps de la méthode englobante a été créé par la méthode CreateMethodBody(Byte[], Int32).

La méthode à laquelle ce ILGenerator est associé n'est pas représentée par MethodBuilder.

Remarques

La variable locale est créée dans l’étendue lexicale actuelle ; par exemple, si du code est émis dans une for boucle (For boucle en 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)

Source:
ILGenerator.cs
Source:
ILGenerator.cs
Source:
ILGenerator.cs

Déclare une variable locale du type spécifié.

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

Paramètres

localType
Type

Objet Type représentant le type de variable locale.

Retours

Variable locale déclarée.

Exceptions

localType a la valeur null.

Le type conteneur a été créé à l'aide de la méthode CreateType().

Exemples

L’exemple de code suivant illustre l’utilisation de la DeclareLocal méthode . Ce code fait partie d’un exemple de code plus volumineux pour 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)

Remarques

La variable locale est créée dans l’étendue lexicale actuelle ; par exemple, si du code est émis dans une for boucle (For boucle en 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 surcharge de méthode DeclareLocal(Type, Boolean) .

S’applique à