SORU
23 EYLÜL 2008, Salı


Sanal bir kurucu üye çağrı

Benim nesneleri yapıcı bir sanal üye çağrı hakkında ReSharper bir uyarı alıyorum. Neden böyle bir şey yapma olur mu?

CEVAP
23 EYLÜL 2008, Salı


(C yazdığını varsayarak# burada)

Ne zaman bir nesne ile yazılmış C# inşa edilmiş, ne olur bu başlatıcılar çalıştırmak için en türetilmiş sınıf temel sınıf, ve sonra kurucular çalıştırmak için temel sınıfından en türetilmiş sınıf (see Eric Lippert's blog for details as to why this is).

Ayrıca .NET nesneleri oluşturulması gibi türünü değiştirmek istemiyorum, ama çoğu türetilmiş bir tür olarak başlar, yöntem tablo en türetilmiş bir tür için. Bu sanal yöntem çağrıları her zaman en türetilmiş bir tür üzerinde çalışan anlamına gelir.

Ne zaman bir araya bu iki gerçekler vardır sol ile sorunu olan bir sanal yöntem çağrısı, bir kurucu ve bir değil en türetilmiş türü olan devralma hiyerarşisi, bu olacak diye bir sınıf olan kurucu değil çalıştırmak, ve bu nedenle değil bir devlet için uygun olan yöntemi denir.

Bu sorun, elbette, hafifletilmiş eğer mark sınıf olarak kapalı olmasını sağlamak en türetilmiş tür bir kalıtım hiyerarşisi içinde hangi durumda gayet Güvenli Arama için sanal bir yöntem.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joseph Herscher

    Joseph Hersc

    14 Mart 2007
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Khan Academy

    Khan Academy

    17 Kasım 2006