primary constructor
-
bu naneyi c#'a getireceklerdi, var gectiler.
default constructor dahil tum constructor'lardan ayri tutulan bir constructor dusunun. oyle bir sey ki, tum diger constructor'lar onu cagirmak zorunda. hangi constructor overoad'u cagirirsaniz cagirin, onunde sonunde o da bu arkadasi cagirarak nesneyi yaratiyor.
buradaki mantik da benim gordugum kadariyla su: primary constructor sinifin tum initialization context'i tarafindan erisilebilen bir sey. yani soyle ki, sinifimiz "public class foobar(int id) { ... }" seklinde tanimlanmissa, o sinifin icindeki tum property'ler kendi initializasyonlari sirasinda bu id parametresine erisebiliyorlar.
peki sonuc ne yani, neyime yaradi bu? suna yaradi: auto-implemented property'ler falan yazarken kolayimiza geliyor. soyle bir sey:
public class foobar()
{
public int ıd { get; }
public foobar(int id)
{
ıd = id;
}
}
soyle bir seyimsiye donusuyor:
public class foobar(int id)
{
public int ıd => id;
}
diyeceksiniz, cok da fifi. tamam, bence de cok da fifi, ama kucuk kolayliklar uzun vadede buyuk farklar yaratiyor. eziyet cekmeye mi geldik su dunyaya?
neden c#'a eklemeye karar verdiler, neden vaz gectiler, bir fikrim yok. scope ve validasyon sorunlarindan muzdarip olmus olmalari muhtemel. -
şunu;
public class categorycontroller : controller
{
private readonly ıhttpclientfactory _httpclientfactory;
public categorycontroller(ıhttpclientfactory httpclientfactory)
{
_httpclientfactory = httpclientfactory;
}
public ıactionresult ındex()
{
return view();
}
}
şuna;
public class categorycontroller(ıhttpclientfactory httpclientfactory) : controller
{
private readonly ıhttpclientfactory _httpclientfactory = httpclientfactory;
public ıactionresult ındex()
{
return view();
}
}
dönüştürüyor. chat gpt ve google gemini'ye sorduğumda özhakiki constructor'a göre daha az hata, clean code'a yatkınlık, optimizasyon ve güvenlik açısından daha avantajlı olduğunu söyledi.
ekşi sözlük kullanıcılarıyla mesajlaşmak ve yazdıkları entry'leri
takip etmek için giriş yapmalısın.
hesabın var mı? giriş yap