Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengambil Nilai Harta Secara Dinamik dalam C# mengikut Nama?

Bagaimanakah Saya Boleh Mengambil Nilai Harta Secara Dinamik dalam C# mengikut Nama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-06 17:15:49935semak imbas

How Can I Dynamically Retrieve Property Values in C# by Name?

Pendapatan Nilai Harta mengikut Nama

Nilai harta objek boleh diakses dengan nama masing-masing, membolehkan manipulasi program dan mendapatkan semula data. Dalam senario tertentu, adalah wajar untuk mendapatkan semula nilai harta secara dinamik berdasarkan nama harta boleh ubah. Soalan ini meneroka kaedah untuk mencapai kefungsian sedemikian.

Kaedah:

Kaedah C# berikut memanfaatkan pantulan untuk mendapatkan nilai sifat objek berdasarkan sifat yang ditentukan nama:

public string GetPropertyValue(object obj, string propertyName)
{
    return obj.GetType().GetProperty(propertyName).GetValue(obj, null);
}

Penggunaan:

Kepada dapatkan semula nilai sifat "Buat" daripada objek "kereta":

string make = GetPropertyValue(car, "Make");

Pelaksanaan:

Kaedah ini berfungsi seperti berikut:

  1. Tentukan Maklumat Harta: Menggunakan kaedah GetProperty pada jenis objek, metadata harta diperolehi.
  2. Dapatkan Nilai Harta: Kaedah GetValue dipanggil pada maklumat harta untuk mengekstrak nilai sebenar.
  3. Nyatakan Parameter Lalai: Parameter nol dalam GetValue menunjukkan bahawa harta itu diakses terus pada objek, tanpa menghantar sebarang parameter.

Mata Tambahan:

  • Kaedah ini berfungsi untuk kedua-dua harta awam dan persendirian, dengan syarat mereka mempunyai pengambil.
  • Refleksi boleh memberi kesan kepada prestasi, jadi gunakannya dengan bijak untuk kecekapan optimum.
  • Untuk senario yang lebih kompleks, pelaksanaan tersuai boleh dicipta untuk mengendalikan jenis harta, warisan, dsb.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengambil Nilai Harta Secara Dinamik dalam C# mengikut Nama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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