SORU
21 NİSAN 2009, Salı


Neden'statik sınıflar miras t?

Gerçekten herhangi bir devlet gerekmez çeşitli sınıflar var. Bakış örgütsel açıdan, hiyerarşi içine koymak istiyorum.

Ama statik sınıfları için kalıtım beyan edemem gibi görünüyor.

Böyle bir şey:

public static class Base
{
}

public static class Inherited : Base
{
}

olacak iş değil.

Neden dil tasarımcıları bu olasılığı kapandı?

CEVAP
21 NİSAN 2009, Salı


here ' dan alıntı:

Aslında bu tasarım gereğidir. Statik bir sınıf devralmak için iyi bir neden var gibi gözüküyor. Her zaman sınıf ismi üzerinden kendini erişebilirsiniz ortak statik üyesi bulunuyor.Statik şeyler miras için gördüğüm tek sebep kötü olanlar, yazım birkaç karakter kaydetme gibi.

Olabilir mantıklı düşünün mekanizmaları getirmek statik üyeleri doğrudan içine kapsam, biz aslında bunları göz önünde bulundurun sonra Orcas ürün döngüsü), ama statik sınıfı miras değil aferin: yanlış mekanizması ve eserler için statik bir üye olmasını ikamet statik bir sınıf.

(Mads Torgersen, C# Dili PM)

channel9 Diğer görüşler

Miras .NET tek örneği Bankası'nda çalışıyor.Statik yöntemler örnek düzeyinde tür düzeyinde tanımlanmıştır. Bu statik yöntemler/özellikler/olaylar ile çalışmıyor neden

Statik yöntemler sadece bir kez bellekte tutulur. Sanal tablo vb yok. bu onlar için oluşturulur.

Size bir örnek yöntemi içinde çağırmak .NET, her zaman geçerli örneğini ver. Bu tarafından gizlenmiştir .NET çalışma zamanı, ama olmuyor.Her örnek yöntemi ilk argüman olarak bir işaretçi (referans) yöntemi çalıştırmak nesne. Bu statik yöntemler ile olmaztür düzeyinde tanımlanmış olduğu gibi). Nasıl derleyici çağırmak için yöntemi seçmek için karar vermelidir?

(littleguru)

Ve değerli bir fikir gibilittlegurubir kısmi "" bu sorun için: Singleton desen. geçici çözüm vardır

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 99being99

    99being99

    2 EYLÜL 2008
  • Curso Online Gratuito

    Curso Online

    4 Aralık 2011
  • friendz.net

    friendz.net

    29 EKİM 2010