'da bir kurucudan çağrıcı örneği yöntemi Çeşitli başlatma işlemlerini gerçekleştiren oldukça uzun bir yapıcım var ve bu çalışmanın bazılarını bazı işlevlere dahil etmek istedim. Bu, söz konusu işlevler örneğini veya statik yöntemleri yapmam gerekip gerekmediğini merak etti. Bir yapıcıdan sanal bir işlev çağırma riskini anlıyorum ama aynı zamanda% 100 örneklenmemiş bir nesne üzerinde bir örnek yöntemini çağırmak konusunda doğru olmayan bir şey olduğunu düşünüyorum. Elbette bu bir çelişkidir.C#
Bu konudaki halkların görüşleriyle ilgilenirim. Ayrıca, başlangıçtaki bir değişkeni döndürmek için statik bir yöntem kullanarak, üyeyi salt okunur hale getirebileceğimi de buldum. İşte senaryonun basitleştirilmiş bir örneğidir.
public class A
{
private readonly string _foo;
public A()
{
_foo = InitialiseFoo();
}
private static InitialiseFoo()
{
// Do stuff
return new string ("foo");
}
}
Neden uzun bir kurucunuz var? Kurucular böyle olmamalı. Uzun işlemleri gerçekleştirmek için yöntemler kullanmalısınız. Bazı API'leri kullanmaya çalıştığınızda bu API her zaman çok sinir bozucudur ve bu API, kurucusunda veritabanı erişimi ve içeriği gerçekleştirir ve özel olarak istisnalar ve şeyler atar. Yap onu. Gerçekten sinir bozucu. Yapıcılar basit olmalı. –
Bu konuda size tamamen katılıyorum, ancak ilk önce bir yapılandırma dosyasından hizmet adını alması gereken bir windows hizmeti kodluyorum. Bir servisin ismini sadece kurucunun içinde ayarlayabilirsin, ben de buna bağlı kaldım. – user738134