


Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah dengan Cekap dalam C#?
Dec 26, 2024 pm 05:01 PMMenentukan 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!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Gulc: Perpustakaan C dibina dari awal

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?
