SORU
6 AĞUSTOS 2009, PERŞEMBE


Nasıl miras Nitelikleri uygun mu?

Inherited bool ifade eder öznitelikleri özellik nedir?

Demek oluyor ki, eğer ben define sınıfımla birlikte bir öznitelik AbcAtribute (Inherited = true) ve eğer bana miras başka bir sınıftan sınıf, türetilmiş sınıf da aynı öznitelik için uygulanan?

Bir kod örneği ile bu soruyu açıklığa kavuşturmak için, aşağıdaki düşünün:

[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }

[Random]
class Mother 
{ }

class Child : Mother 
{ }

Child Random öznitelik uygulanan var mı?

CEVAP
6 AĞUSTOS 2009, PERŞEMBE


= Gerçek Miras kaldığında oluşturduğunuz öznitelik sınıfı özniteliği ile donatılmış alt sınıflar tarafından miras anlamına gelir.

Eğer MyUberAttribute oluşturmak - [AttributeUsage (=gerçek Miras)]

[AttributeUsage (Inherited = True)]
MyUberAttribute : Attribute
{
   string _SpecialName;
   public string SpecialName
   { 
     get { return _SpecialName; }
     set { _SpecialName = value; }
   }
}

Sonra süper-sınıf dekorasyon Özniteliğini kullanın...

[MyUberAttribute(SpecialName = "Bob")]
class MySuperClass 
{
  public void DoInterestingStuf () { ... }
}

Eğer MySuperClass alt sınıfı yaratırız bu öznitelik olacak

class MySubClass : MySuperClass
{
   ...
}

Sonra MySubClass bir örneğini oluşturmak için

MySubClass MySubClassInstance = new MySubClass();

Eğer öznitelik olup olmadığını görmek için test...

MySubClassİnstance <--- şimdi "" SpecialName değeri olarak. Bob MyUberAttribute var

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Manuel Vizcaino

    Manuel Vizca

    27 Mayıs 2008
  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011