Neden varsayılan parametresiz yapıcı parametreleri ile bir oluşturduğunuzda git yapar
Yapıcı parametreleri alarak oluştururken C#, C ve Java, varsayılan bir parametresiz. Her zaman sadece bu gerçeği kabul etmiştim, ama şimdi merak ettim.
Bu davranışın nedeni nedir? Sadece bir "" "Eğer kendi kurucu yarattın, sen . diyerek güvenlik önlemi/tahmin ^em>muhtemelenbu örtülü bir etrafında asılı istemiyorum"? Yoksa derleyici bir kurucu oluşturduktan sonra bir tane eklemek imkansız kılan teknik bir nedeni var mı?
CEVAP
Derleyici eğer kendi eklediğiniz zaman yapıcı ekleyin edemeyeceği bir neden yok - derleyici hemen hemen istediği her şeyi yapabilir! Ancak, en mantıklı bakmak gerekir:
- Tanımlanan yokherhangi birstatik olmayan bir sınıf için yapıcı, ben büyük olasılıkla bu sınıfın bir örneğini oluşturmaya muktedir istiyorum. Bunu sağlamak için, derleyicigerekirama örnekleme izin vermek için hiçbir etkisi olmaz olan parametresiz bir kurucu ekleyin. Bu sadece iş yapmak için benim kod boş bir yapıcı vardır gerek yok anlamına gelir.
- Eğer benim de bir yapıcısı, özellikle parametreleri ile tanımlanan bir şey varsa, o zaman büyük olasılıkla sınıf oluşturma üzerinde yürütülmelidir benim kendi mantığı var. Eğer derleyici bu durumda boş, parametresiz bir kurucu oluşturmak için olsaydı, birileri için izin verecekatlamantık yollar her sayısında benim kod kırılmasına neden olabilecek yazılı, bana da olmuştu. Eğer bu durumda varsayılan boş bir yapıcı istiyorum, bu yüzden açıkça söylemek istiyorum.
Yani, her durumda, mevcut uygulamaları davranışı korunması açısından en mantıklı olduğunu görebilirsinizmuhtemelen niyetikod.
Neden yapar .NET use banker'varsa...
Neden bu varsayılan yapıcı değil mi?...
Scala yapıcı parametreleri özel val iç...
Neden Varsayılan yapıcı sanal miras de...
** (Çift yıldız) ve * (yıldız) Python ...