Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 19862|Jawab: 1

[Sumber] Pewarisan fitur .net/c# secara rinci

[Salin tautan]
Diposting pada 14/02/2017 11.13.38 | | |
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.







Mantan:Penetapan C# antara dua properti objek
Depan:TypeError yang Tidak Tertangkap: a(...). orang tua(...). danDiri bukanlah fungsi
 Tuan tanah| Diposting pada 30/03/2017 09.35.49 |
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com