Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Nama Pembolehubah dengan Cekap dalam 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!