memanfaatkan c# refleksi untuk mengakses nilai harta dari rentetan
Refleksi dalam C# menyediakan cara yang dinamik untuk berinteraksi dengan objek semasa runtime. Permohonan biasa adalah mendapatkan nilai harta apabila anda hanya mempunyai nama mereka sebagai rentetan.Teknik ini amat berguna apabila berurusan dengan data atau konfigurasi dinamik di mana nama harta tidak diketahui pada masa penyusunan.
menggunakan dan Type.GetProperty()
GetValue()
dan Type.GetProperty()
. Inilah fungsi ringkas yang menunjukkan ini: GetValue()
<code class="language-csharp">public static object GetPropertyValue(object obj, string propertyName) { Type type = obj.GetType(); PropertyInfo property = type.GetProperty(propertyName); return property?.GetValue(obj); }</code>
) dengan anggun mengendalikan kes-kes di mana harta itu tidak wujud, mencegah pengecualian. ?.
Contoh praktikal
mari kita menggambarkan penggunaannya:
<code class="language-csharp">public class MyClass { public string MyProperty { get; set; } } // ... later in your code ... string className = "MyClass"; string propertyName = "MyProperty"; object instance = Activator.CreateInstance(Type.GetType(className)); object propertyValue = GetPropertyValue(instance, propertyName); </code>
dan mengambil nilai MyClass
menggunakan fungsi MyProperty
. Ini menghapuskan keperluan untuk akses hartanah hardcoded dan meningkatkan fleksibiliti kod. GetPropertyValue
Atas ialah kandungan terperinci Bagaimanakah refleksi dapat mengambil nilai harta dari rentetan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!