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