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/