Rumah >pembangunan bahagian belakang >C++ >Bolehkah Parameter Atribut Ditukar Secara Dinamik pada Masa Jalan?
Menukar Parameter Atribut Secara Dinamik
Tidak jelas dengan serta-merta sama ada anda boleh mengubah suai parameter atribut semasa masa jalan. Sebagai contoh, pertimbangkan kelas berikut yang dibekalkan oleh vendor pihak ketiga:
public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } }
Anda menyedari perihalan kategori yang diberikan adalah tidak tepat dan ingin mengubah suainya tanpa mengubah kod asal. Bagaimanakah ini boleh dicapai?
Mengubah suai Kejadian Atribut Secara Dinamik
Ternyata anda memang boleh mengubah suai nilai tika atribut pada masa jalan. Contoh atribut ialah objek biasa, membenarkan manipulasi tanpa had. Langkah berikut menunjukkan cara:
Dapatkan kejadian atribut daripada jenis:
ASCII[] attrs1=(ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
Ubah suai pembolehubah awam bagi atribut yang diambil:
attrs1[0].MyData="A New String";
Tunjukkan yang diubah suai nilai:
MessageBox.Show(attrs1[0].MyData);
Buat contoh atribut baharu untuk mengesahkan nilai asal tidak berubah:
ASCII[] attrs3=(ASCII[]) typeof(MyClass).GetCustomAttributes(typeof(ASCII), false); MessageBox.Show(attrs3[0].MyData);
Ini menunjukkan keupayaan untuk laraskan parameter atribut secara dinamik pada masa jalan.
Atas ialah kandungan terperinci Bolehkah Parameter Atribut Ditukar Secara Dinamik pada Masa Jalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!