Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 19862|Yanıt: 1

[Kaynak] .net/c# özellik mirası ayrıntılı olarak

[Bağlantıyı kopyala]
Yayınlandı 14.02.2017 11:13:38 | | |
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.







Önceki:İki nesne özelliği arasında C# ataması
Önümüzdeki:Yakalanmamış TypeError: a(...). ebeveynler(...). veBen bir fonksiyon değildir
 Ev sahibi| Yayınlandı 30.03.2017 09:35:49 |
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com