Deskripsi:
Ada dua kelas, A dan B, I A mewarisi kelas B, dan kemudian B adalah kelas induk
Saya telah mengatur properti TestAttribute di kelas A dan kelas B masing-masing...
Kemudian, ambil karakteristik objek, dan kodenya adalah sebagai berikut:
Saya menemukan bahwa jumlah hasilnya adalah 1, dan atributnya adalah atribut yang ditetapkan oleh A, bukan atribut yang ditetapkan oleh B, apalagi digabungkan, mengapa demikian???
[bantuan("BaseClass")] publicclass Base{} publicclass Derive : Base{} Ada empat kemungkinan kombinasi di sini:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true ] Kasus pertama:
Jika kita mengkueri class Derive (kita akan melihat nanti cara mengkueri properti class saat runtime), kita akan menemukan bahwa fitur Help tidak ada karena properti yang diwariskan diatur ke false.
Kasus kedua:
Sama seperti pada kasus pertama, karena inherited juga diatur ke false.
Situasi ketiga:
Untuk menjelaskan kasus ketiga dan keempat, pertama-tama mari tambahkan beberapa kode ke kelas turunan:
[Bantuan("BaseClass")] publicclass Base{}[Bantuan("DeriveClass")] publicclass Derive : Base{} Sekarang mari kita kueri fitur Bantuan, kita hanya bisa mendapatkan properti kelas turunan, karena inherited diatur ke true, tetapi AllowMultiple diatur ke false. Oleh karena itu, fitur Bantuan dari kelas dasar ditimpa oleh fitur bantuan dari kelas turunan.
Situasi keempat:
Di sini kita akan menemukan bahwa kelas turunan memiliki fitur Bantuan dari kelas dasar dan fitur Bantuannya sendiri, karena AllowMultiple diatur ke true.
|