Açıklama:
İki sınıf vardır, A ve B, I A sınıf B'yi miras alır ve B ana sınıftır
TestAttribute özelliklerini sırasıyla sınıf A ve sınıf B olarak ayarladım...
Sonra, nesnenin özelliklerini alır ve kod şöyledir:
Sonuç sayısının 1 olduğunu ve bu niteliğin A tarafından kümelenmiş nitelik, B'nin özniteliği kümesi olmadığını, ayrıca birleştirildiğini buldum, neden böyle???
[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{} Burada dört olası kombinasyon var:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = yanlış, Miras = yanlış] [AttributeUsage(AttributeTargets.Class, AllowMultiple = doğru, Miras = yanlış] [AttributeUsage(AttributeTargets.Class, AllowMultiple = yanlış, Miras = doğru] [AttributeUsage(AttributeTargets.Class, AllowMultiple = doğru, Miras alınmış = doğru] İlk vaka:
Derive sınıfını sorgulalarsak (daha sonra bir sınıfın özelliklerinin çalışma zamanında nasıl sorgulatılacağını göreceğiz), Help özelliğinin mevcut olmadığını görürüz çünkü miras alınan özellik false olarak ayarlanmış.
İkinci durum:
İlk durumdaki gibi, çünkü miras alan da yanlış olarak ayarlanmıştır.
Üçüncü durum:
Üçüncü ve dördüncü vakaları açıklamak için önce türetilmiş sınıfa biraz kod ekleyelim:
[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{} Şimdi Help özelliğini sorgulayalım, sadece türetilmiş sınıfın özelliklerini alabiliriz, çünkü inherited doğru olarak ayarlanmış, AllowMultiple false olarak ayarlanmış. Bu nedenle, temel sınıfın Help özelliği, türetilmiş sınıfın yardım özelliği tarafından geçersiz kılınır.
Dördüncü durum:
Burada, türetilmiş sınıfın hem temel sınıfın Help özelliğine hem de kendi Help özelliğine sahip olduğunu göreceğiz, çünkü AllowMultiple true olarak ayarlanmıştır.
|