Menü Bezárás

Lazy Loading a C#-ban

A lazy loading lényege, hogy csak akkor töltsük fel a mezőt (field-et), hogyha szükség van rá. Mikor máskor lenne szükségünk egy mezőre, mint az első lekéréskor? Különösen ajánlott, hogy a mezőinkhez (field-jeinkhez) készítsünk saját tulajdonságokat (proprety-ket) getter, esetleg setter blokkal, amelyek segítségével lehet szerkeszteni, vagy éppen lekérni a mögöttük lévő mezőt.

Példa

Cat cat;

public object Pet
{
    get
    {
        return cat ?? (cat = GetCat());
    }
}

Cat GetCat()
{
    return new Cat();
}

A példa feladat bemutatja, hogy a Pet tulajdonság getter blokkja visszatérne a cat mező értékével, azonban hogyha az null, a ?? operátorunk jobb oldala fog kiértékelődni, amely nemcsak feltölti a cat mezőnket a GetCat metódussal, de vissza is adja az új Cat osztályt.

Hogyha esetleg nem lenne ismerős a ?? operátor, ajánlom figyelmedbe az alábbi cikkünket: https://www.easycode.hu/c_sharp/mire-jo-a-kerdojel-operator/

Posted in C#