• 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.
hesabın var mı? giriş yap