Baca dalam bahasa Inggris

Bagikan melalui


LocalVariableInfo Kelas

Definisi

Menemukan atribut variabel lokal dan menyediakan akses ke metadata variabel lokal.

public class LocalVariableInfo
[System.Runtime.InteropServices.ComVisible(true)]
public class LocalVariableInfo
Warisan
LocalVariableInfo
Turunan
Atribut

Contoh

Contoh berikut mendefinisikan metode pengujian bernama MethodBodyExample, dan menampilkan informasi variabel lokalnya. Metode GetMethodBody ini digunakan untuk mendapatkan MethodBody objek untuk metode pengujian. Properti LocalVariables kemudian digunakan untuk mendapatkan daftar LocalVariableInfo objek dan untuk menampilkan jenis dan urutan indeksnya.

Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk MethodBody kelas .

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

        // 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
//
//Local variable: System.Int32 (0)
//Local variable: System.String (1)
//Local variable: System.Exception (2)
//Local variable: System.Boolean (3)

Keterangan

Untuk mendapatkan daftar variabel lokal dalam metode , gunakan MethodBody.LocalVariables properti . MethodBase.GetMethodBody Gunakan metode untuk mendapatkan MethodBody untuk MethodInfo objek .

Catatan

Nama variabel lokal tidak bertahan dalam metadata. Dalam bahasa perantara Microsoft (MSIL), variabel lokal diakses oleh posisinya dalam tanda tangan variabel lokal.

Konstruktor

LocalVariableInfo()

Menginisialisasi instans baru kelas LocalVariableInfo.

Properti

IsPinned

Boolean Mendapatkan nilai yang menunjukkan apakah objek yang dimaksud oleh variabel lokal disematkan dalam memori.

LocalIndex

Mendapatkan indeks variabel lokal dalam isi metode.

LocalType

Mendapatkan jenis variabel lokal.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang dapat dibaca pengguna yang menjelaskan variabel lokal.

Berlaku untuk

Produk Versi
.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

Lihat juga