Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah refleksi dapat mengambil nilai harta dari rentetan dalam C#?

Bagaimanakah refleksi dapat mengambil nilai harta dari rentetan dalam C#?

Susan Sarandon
Lepaskan: 2025-02-02 19:31:11
asal
768 orang telah melayarinya

How Can Reflection Retrieve Property Values from Strings in C#?

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()

teras pendekatan ini terletak pada kaedah

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>
Salin selepas log masuk
Fungsi ini mengambil objek dan nama harta (sebagai rentetan) dan mengembalikan nilai harta benda. Pengendali null-conditional (

) 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>
Salin selepas log masuk
Contoh ini secara dinamik mencipta contoh

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan