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
(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.
C kurucu sanal fonksiyon...
Performans &; doğrudan" C arabiri...
çağrı birbirinden kurucu...
Neden C sanal bir kurucu var mı ?...
Neden't bir yapı için varsayılan ...