SORU
21 EKİM 2008, Salı


Nasıl kurucular miras?

Hayalbirçok kurucular ve sanal bir yöntem ile bir temel sınıf

public class Foo
{
   ...
   public Foo() {...}
   public Foo(int i) {...}
   ...
   public virtual void SomethingElse() {...}
   ...
}

ve şimdi sanal yöntemi geçersiz kılan bir alt sınıf oluşturmak istiyorum

public class Bar : Foo 
{
   public override void SomethingElse() {...}
}

Ve bir şeyler daha mı başka alt:

public class Bah : Bar
{
   public void DoMoreStuff() {...}
}

Çok Bar ve Bah içine Foo tüm kurucular kopyalamak zorunda mıyım? Ve sonra Foo yapıcı bir imza değiştirirsem, güncelleme gerekiyor Bar ve Bah?

Kurucular miras yolu yok mu? Kodu yeniden teşvik etmek için bir yolu var mı?

CEVAP
21 EKİM 2008, Salı


Evet, sen-ecek var uygulamak kurucular bunun anlamı, her bir türev ve base anahtar kelime doğrudan sınıf için uygun bir temel sınıf veya this anahtar kelime doğrudan yapıcı bir kurucu aynı sınıfta.

Eğer derleyici miras kurucular hakkında varsayımlar yapılmış, düzgün bir şekilde nesneleri örneği nasıl olduğunu belirlemek mümkün olmaz. Çok yerinde, çok kurucular neden düşünmelisiniz sınıfın içerisinde sadece bir ya da iki onları düşürmeyi düşünün. Türetilmiş sınıfları sonra bazıları null gibi sabit değerleri kullanarak maske ve sadece kendi kurucular ile gerekli olanları açığa çıkarabilir.

Güncelleme

C#4 varsayılan parametre değerleri belirtmek ve adlandırılmış parametreleri tek bir kurucu yapılandırma başına bir kurucu yerine, birden çok bağımsız değişken yapılandırmaları destek yapmak için kullanabilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • mist64

    mist64

    30 Mayıs 2006