Afficher en anglais

Partage via


LocalVariableInfo Classe

Définition

Identifie les attributs d'une variable locale et donne accès aux métadonnées de la variable locale.

C#
public class LocalVariableInfo
C#
[System.Runtime.InteropServices.ComVisible(true)]
public class LocalVariableInfo
Héritage
LocalVariableInfo
Dérivé
Attributs

Exemples

L’exemple suivant définit une méthode de test nommée MethodBodyExampleet affiche ses informations de variable locale. La GetMethodBody méthode est utilisée pour obtenir un MethodBody objet pour la méthode de test. La LocalVariables propriété est ensuite utilisée pour obtenir une liste d’objets LocalVariableInfo et pour afficher leurs types et leur ordre d’index.

Cet exemple de code fait partie d’un exemple plus grand fourni pour la MethodBody classe .

C#
using System;
using System.Reflection;

public class Example
{
    public static void Main()
    {
        // Get method body information.
        MethodInfo mi = typeof(Example).GetMethod("MethodBodyExample");
        MethodBody mb = mi.GetMethodBody();
        Console.WriteLine("\r\nMethod: {0}", mi);

        // Display the general information included in the
        // MethodBody object.
        Console.WriteLine("    Local variables are initialized: {0}",
            mb.InitLocals);
        Console.WriteLine("    Maximum number of items on the operand stack: {0}",
            mb.MaxStackSize);
C#

// Display information about the local variables in the
// method body.
Console.WriteLine();
foreach (LocalVariableInfo lvi in mb.LocalVariables)
{
    Console.WriteLine("Local variable: {0}", lvi);
}
C#
    }

    // The Main method contains code to analyze this method, using
    // the properties and methods of the MethodBody class.
    public void MethodBodyExample(object arg)
    {
        // Define some local variables. In addition to these variables,
        // the local variable list includes the variables scoped to
        // the catch clauses.
        int var1 = 42;
        string var2 = "Forty-two";

        try
        {
            // Depending on the input value, throw an ArgumentException or
            // an ArgumentNullException to test the Catch clauses.
            if (arg == null)
            {
                throw new ArgumentNullException("The argument cannot be null.");
            }
            if (arg.GetType() == typeof(string))
            {
                throw new ArgumentException("The argument cannot be a string.");
            }
        }

        // This filter clause selects only exceptions that derive
        // from the ArgumentException class.
        // Other exceptions, including ArgumentException itself,
        // are not handled by this filter clause.
        catch (ArgumentException ex) when (ex.GetType().IsSubclassOf(typeof(ArgumentException)))
        {
            Console.WriteLine("Filter clause caught: {0}", ex.GetType());
        }

        // This catch clause handles the ArgumentException class, and
        // any other class derived from Exception.
        catch(Exception ex)
        {
            Console.WriteLine("Ordinary exception-handling clause caught: {0}",
                ex.GetType());
        }
        finally
        {
            var1 = 3033;
            var2 = "Another string.";
        }
    }
}

// This code example produces output similar to the following:
//
//Method: Void MethodBodyExample(System.Object)
//    Local variables are initialized: True
//    Maximum number of items on the operand stack: 2
C#
//
//Local variable: System.Int32 (0)
//Local variable: System.String (1)
//Local variable: System.Exception (2)
//Local variable: System.Boolean (3)

Remarques

Pour obtenir la liste des variables locales dans une méthode, utilisez la MethodBody.LocalVariables propriété . Utilisez la MethodBase.GetMethodBody méthode pour obtenir le MethodBody pour un MethodInfo objet .

Remarque

Les noms de variables locales ne sont pas conservés dans les métadonnées. Dans microsoft intermediate language (MSIL), les variables locales sont accessibles en fonction de leur position dans la signature de variable locale.

Constructeurs

LocalVariableInfo()

Initialise une nouvelle instance de la classe LocalVariableInfo.

Propriétés

IsPinned

Obtient une valeur Boolean qui indique si l'objet référencé par la variable locale est épinglé en mémoire.

LocalIndex

Obtient l'index de la variable locale dans le corps de la méthode.

LocalType

Obtient le type de la variable locale.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne lisible par l'utilisateur qui décrit la variable locale.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi