memanfaatkan refleksi untuk mengakses sifat kelas C#
Pengaturcaraan berorientasikan objek sering memerlukan berinteraksi dengan contoh kelas dan sifat mereka. Refleksi menawarkan mekanisme yang kuat untuk mengkaji dan memanipulasi sifat -sifat ini secara dinamik. Panduan ini menunjukkan bagaimana untuk mendapatkan senarai sifat yang berkaitan dengan kelas.
Mendapatkan maklumat harta
API Refleksi NET memudahkan penerokaan harta. Dua kaedah utama mencapai ini:
Obj.GetType().GetProperties()
digunakan semasa bekerja dengan contoh kelas tertentu.
typeof(ClassName).GetProperties()
digunakan semasa bekerja secara langsung dengan jenis kelas.
, masing -masing mewakili satu harta kelas. PropertyInfo
Contoh praktikal
mari kita ilustrasikan dengan kelas sampel:
public class Foo { public int A { get; set; } public string B { get; set; } }
contoh: Foo
Foo foo = new Foo { A = 1, B = "abc" }; foreach (var prop in foo.GetType().GetProperties()) { Console.WriteLine($"{prop.Name} = {prop.GetValue(foo)}"); }
Nota penting:
null
. GetValue()
GetProperties(BindingFlags)
. Ingatlah bahawa mengakses ahli bukan awam harus dilakukan dengan berhati-hati dan hanya apabila benar-benar diperlukan. BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan refleksi untuk meneroka sifat kelas di C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!