Apa yang Inherited
dirujuk oleh properti bool pada atribut?
Apakah ini berarti bahwa jika saya mendefinisikan kelas saya dengan atribut AbcAtribute
(yang memiliki Inherited = true
), dan jika saya mewarisi kelas lain dari kelas itu, kelas turunan juga akan memiliki atribut yang sama yang diterapkan padanya?
Untuk memperjelas pertanyaan ini dengan contoh kode, bayangkan yang berikut ini:
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }
[Random]
class Mother
{ }
class Child : Mother
{ }
Apakah Child
juga memiliki Random
atribut yang diterapkan padanya?
c#
.net
vb.net
attributes
melahap elysium
sumber
sumber
Inherited
properti memiliki contoh terperinci yang menunjukkan perbedaan antaraInherited=true
danInherited=false
untuk kelas yang diwariskan danoverride
metode.Jawaban:
Ketika Inherited = true (yang merupakan default) itu berarti bahwa atribut yang Anda buat dapat diwarisi oleh sub-kelas dari kelas yang didekorasi oleh atribut tersebut.
Jadi - jika Anda membuat MyUberAttribute dengan [AttributeUsage (Inherited = true)]
Kemudian gunakan Atribut dengan mendekorasi kelas super ...
Jika kita membuat sub-kelas MySuperClass, ia akan memiliki atribut ini ...
Kemudian buat instance MySubClass ...
Kemudian uji untuk melihat apakah itu memiliki atribut ...
MySubClassInstance <--- sekarang memiliki MyUberAttribute dengan "Bob" sebagai nilai SpecialName.
sumber
Ya, itulah tepatnya yang dimaksud. Atribut
sumber
Pewarisan atribut diaktifkan secara default.
Anda dapat mengubah perilaku ini dengan:
sumber