Tugas mendapatkan semula nama pembolehubah menggunakan pantulan telah menarik minat pembangun untuk beberapa lama. Ketidakupayaan untuk mengakses nama pembolehubah selepas penyusunan kepada IL memberikan cabaran. Walau bagaimanapun, dengan pendekatan kreatif, refleksi boleh dimanfaatkan untuk mengatasi had ini.
Untuk mencapai matlamat ini, pokok ekspresi dan promosi penutupan digunakan. Pokok ungkapan menawarkan cara untuk mewakili ungkapan secara terprogram. Dengan mempromosikan pembolehubah kepada penutupan, anda boleh mengekalkan namanya dengan berkesan.
Kod berikut menunjukkan pelaksanaan teknik ini:
static string GetVariableName<T>(Expression<Func<T>> expr) { var body = (MemberExpression)expr.Body; return body.Member.Name; }
Kaedah ini mengambil ungkapan dan mendapatkan semula nama pembolehubah yang dirujuknya. Contohnya:
static void Main() { var someVar = 3; Console.Write(GetVariableName(() => someVar)); }
Dalam contoh ini, kaedah GetVariableName digunakan untuk mendapatkan semula nama pembolehubah someVar.
Pertimbangan Prestasi
Adalah penting untuk ambil perhatian bahawa teknik ini boleh menjadi mahal dari segi pengiraan. Mencipta dan memusnahkan objek semasa pelaksanaan boleh meningkatkan tekanan kutipan sampah. Selain itu, di bawah tudung, pelbagai kaedah dipanggil dan refleksi banyak digunakan. Oleh itu, adalah dinasihatkan untuk mengelak daripada menggunakan pendekatan ini dalam laluan kod kritikal prestasi.
Atas ialah kandungan terperinci Bagaimanakah Refleksi Boleh Digunakan untuk Mendapatkan Nama Pembolehubah dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!