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

  • Distractify

    Distractify

    1 Aralık 2011
  • emimusic

    emimusic

    10 Mart 2006
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007