Rumah > pembangunan bahagian belakang > C++ > Bolehkah Parameter Atribut Ditukar Secara Dinamik pada Masa Jalan?

Bolehkah Parameter Atribut Ditukar Secara Dinamik pada Masa Jalan?

Susan Sarandon
Lepaskan: 2025-01-03 13:49:44
asal
718 orang telah melayarinya

Can Attribute Parameters Be Dynamically Changed at Runtime?

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;
    }
}
Salin selepas log masuk

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:

  1. Dapatkan kejadian atribut daripada jenis:

    ASCII[] attrs1=(ASCII[])
     typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
    Salin selepas log masuk
  2. Ubah suai pembolehubah awam bagi atribut yang diambil:

    attrs1[0].MyData="A New String";
    Salin selepas log masuk
  3. Tunjukkan yang diubah suai nilai:

    MessageBox.Show(attrs1[0].MyData);
    Salin selepas log masuk
  4. Buat contoh atribut baharu untuk mengesahkan nilai asal tidak berubah:

    ASCII[] attrs3=(ASCII[])
     typeof(MyClass).GetCustomAttributes(typeof(ASCII), false);
     MessageBox.Show(attrs3[0].MyData);
    Salin selepas log masuk

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!

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