Leggi in inglese

Condividi tramite


LocalVariableInfo Classe

Definizione

Individua gli attributi di una variabile locale e consente di accedere ai relativi metadati.

C#
public class LocalVariableInfo
C#
[System.Runtime.InteropServices.ComVisible(true)]
public class LocalVariableInfo
Ereditarietà
LocalVariableInfo
Derivato
Attributi

Esempio

Nell'esempio seguente viene definito un metodo di test denominato MethodBodyExamplee vengono visualizzate le informazioni sulla variabile locale. Il GetMethodBody metodo viene utilizzato per ottenere un MethodBody oggetto per il metodo di test. La LocalVariables proprietà viene quindi utilizzata per ottenere un elenco di oggetti e per visualizzare i tipi e l'ordine di LocalVariableInfo indice.

Questo esempio di codice fa parte di un esempio più ampio fornito per 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)

Commenti

Per ottenere un elenco di variabili locali in un metodo, usare la MethodBody.LocalVariables proprietà . Utilizzare il MethodBase.GetMethodBody metodo per ottenere l'oggetto MethodBody per un MethodInfo oggetto .

Nota

I nomi delle variabili locali non vengono salvati in modo permanente nei metadati. In Microsoft Intermediate Language (MSIL), le variabili locali sono accessibili dalla relativa posizione nella firma della variabile locale.

Costruttori

LocalVariableInfo()

Inizializza una nuova istanza della classe LocalVariableInfo.

Proprietà

IsPinned

Ottiene un valore Boolean che indica se l'oggetto a cui fa riferimento la variabile locale è bloccato in memoria.

LocalIndex

Ottiene l'indice della variabile locale all'interno del corpo del metodo.

LocalType

Ottiene il tipo della variabile locale.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa leggibile dall'utente che descrive la variabile locale.

Si applica a

Prodotto Versioni
.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

Vedi anche