1. Apžvalga
Objektui sukurti reikia daug sąnaudų, o šis objektas gali būti nenaudojamas bėgimo metu, todėl norint išvengti objekto kūrimo kiekvieną kartą, atsiranda tingus inicijavimas (dar vadinamas tingiu egzemplioriumi).
Uždelstas inicijavimas įvyksta . NET 4.0, kuris pirmiausia naudojamas našumui pagerinti, išvengti švaistomų skaičiavimų ir sumažinti programos atminties reikalavimus. Tai taip pat gali būti vadinama pakrovimu pagal poreikį.
2. Pagrindinė gramatika
3. Įgyvendinkite pavyzdžiais
Pradėkite sukurdami mokinių klasę naudodami šį kodą:
Sukurkite konsolės programą su šiuo kodu:
Nustatęs derinimo stabdymo tašką, pastebėjau, kad po naujo studento IsValueCreated reikšmė buvo klaidinga, o vertės reikšmė buvo nulinė
Tada, iškviečiant ypatybę Name, studento IsValueCreated reikšmė yra teisinga, o reikšmės reikšmė nebėra nulinė
Vykdymo rezultatas:
Galima pastebėti, kad studentas inicijuojamas tik tada, kai išvedamas atributas Name, tai yra, jis inicijuojamas, kai jis naudojamas pirmą kartą, kad būtų pasiektas vartojimo mažinimo tikslas.
Šis pavyzdys yra paprastas ir <T>pats paprasčiausias būdas naudoti "Lazy". Taip pat galime naudoti<T> "Lazy" perkrovos funkciją "Lazy"<T> (Func<T>), kad perduotume atstovą su grąžinamąja reikšme, kad nustatytume tinginio inicijavimo objekto ypatybės reikšmę.
Vykdymo rezultatas:
Pastaba: Tinginio<T> objekto inicijavimas pagal numatytuosius nustatymus yra saugus gijoms, o kelių gijų aplinkoje pirmoji gija, pasiekianti objekto<T> ypatybę Reikšmė, inicijuos objektą Tinginys<T>, o vėlesnės prieigos gijos naudos pirmą kartą inicijuotus duomenis.
4. Taikymo scenarijai
Yra objektas, kurį reikia sukurti, ir programa gali jo nenaudoti. Pavyzdžiui, tarkime, kad jūsų programa paleidžiant įkelia kelis objektų egzempliorius, tačiau reikia nedelsiant vykdyti tik kelis egzempliorius. Galite pagerinti programos paleidimo našumą atidėdami nereikalingų objektų inicijavimą, kol bus sukurti reikiami objektai.
|