Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah dengan Cekap dalam C#?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 17:01:09135semak imbas

How Can I Efficiently Get a Variable's Name in C#?

Menentukan Nama Pembolehubah dengan Refleksi

Mengenal pasti nama pembolehubah melalui pantulan boleh menjadi tugas yang rumit. Walaupun kod IL tidak mempunyai nama pembolehubah yang jelas, terdapat kaedah alternatif untuk mendapatkannya.

Pendekatan melalui Pepohon Ungkapan

Satu pendekatan melibatkan penggunaan pepohon ekspresi. Dengan mempromosikan pembolehubah kepada penutupan, adalah mungkin untuk mendapatkan nama mereka melalui badan ekspresi:

static string GetVariableName<T>(Expression<Func<T>> expr)
{
    var body = (MemberExpression)expr.Body;

    return body.Member.Name;
}

Penggunaan:

static void Main()
{
    var someVar = 3;

    Console.Write(GetVariableName(() => someVar));
}

Kelemahan Pokok Ekspresi

Walau bagaimanapun, pendekatan ini agak perlahan dan harus dielakkan dalam senario intensif prestasi. Ia memerlukan penciptaan berbilang objek, tekanan GC dan pantulan yang meluas.

Nama Kata Kunci (C# 6.0 dan Ke Atas)

Dengan pengenalan nama kata kunci dalam C# 6.0, kaedah yang lebih cekap muncul:

static void Main()
{
    var someVar = 3;

    Console.Write(nameof(someVar));
}

Pendekatan ini memberikan kemudahan dan menanggung overhed prestasi minimum.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn