Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe LocalVariableInfo

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

Spazio dei nomi:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public class LocalVariableInfo

Il tipo LocalVariableInfo espone i seguenti membri.

  NomeDescrizione
Metodo protettoSupportato in .NET per applicazioni Windows StoreLocalVariableInfoInizializza una nuova istanza della classe LocalVariableInfo.
In alto

  NomeDescrizione
Proprietà pubblicaSupportato in .NET per applicazioni Windows StoreIsPinnedOttiene un valore Boolean che indica se l'oggetto a cui fa riferimento la variabile locale è bloccato in memoria.
Proprietà pubblicaSupportato in .NET per applicazioni Windows StoreLocalIndexOttiene l'indice della variabile locale all'interno del corpo del metodo.
Proprietà pubblicaSupportato in .NET per applicazioni Windows StoreLocalTypeOttiene il tipo della variabile locale.
In alto

  NomeDescrizione
Metodo pubblicoSupportato in .NET per applicazioni Windows StoreEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo protettoSupportato in .NET per applicazioni Windows StoreFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoSupportato in .NET per applicazioni Windows StoreGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoSupportato in .NET per applicazioni Windows StoreGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoSupportato in .NET per applicazioni Windows StoreMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoSupportato in .NET per applicazioni Windows StoreToStringRestituisce una stringa leggibile dall'utente che descrive la variabile locale. (Esegue l'override di Object.ToString()).
In alto

Per ottenere un elenco delle variabili locali di un metodo, utilizzare la proprietà MethodBody.LocalVariables. Utilizzare il metodo MethodBase.GetMethodBody per ottenere la classe MethodBody per un oggetto MethodInfo.

NotaNota

I nomi delle variabili locali non sono persistenti nei metadati. In MSIL (Microsoft Intermediate Language) è possibile accedere alle variabili locali in base alla relativa posizione nella firma.

Nell'esempio seguente viene definito un metodo di test denominato MethodBodyExample e vengono visualizzate le relative informazioni sulle variabili locali. Il metodo GetMethodBody viene utilizzato per ottenere un oggetto MethodBody per il metodo di prova. La proprietà LocalVariables viene quindi utilizzata per ottenere un elenco di oggetti LocalVariableInfo e per visualizzarne i tipi e l'ordine dell'indice.

Questo esempio di codice fa parte di un esempio più esaustivo fornito per la classe MethodBody.


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


...



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


...


    }

    // 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.");
            }        
        }

        // There is no Filter clause in this code example. See the Visual 
        // Basic code for an example of a Filter clause.

        // 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


...


//
//Local variable: System.Int32 (0)
//Local variable: System.String (1)
//Local variable: System.Exception (2)
//Local variable: System.Boolean (3)


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft