1. Ülevaade
Objekti loomine nõuab palju kulutusi ja seda objekti ei pruugita jooksu ajal kasutada, seega et objekti loomise vältimiseks tuleb mängu laisk initsialiseerimine (tuntud ka kui laisk instantsiatsioon).
Viivitusega initsialiseerimine toimub . NET 4.0, mida kasutatakse peamiselt jõudluse parandamiseks, raisatud arvutuse vältimiseks ja programmimälu nõuete vähendamiseks. Seda võib nimetada ka nõudmisel laadimiseks.
2. Põhigrammatika
3. Rakenda näidetega
Alusta õpilasklassi loomisega järgmise koodiga:
Loo konsooliprogramm järgmise koodiga:
Pärast silumise katkestuspunkti määramist avastasin, et pärast uut oli Studenti IsValueCreated väärtus vale ja väärtuse väärtus null
Seejärel, kui kutsuda nime omadust, on õpilase IsValueCreated väärtus tõene ja väärtuse väärtus ei ole enam null
Jooksu tulemus:
On näha, et õpilane initsialiseeritakse ainult siis, kui Nime atribuut on väljund, st see initsialiseeritakse esmakordsel kasutamisel, et saavutada tarbimise vähendamise eesmärk.
See näide on lihtne ja <T>kõige lihtsam viis Lazy kasutamiseks. Saame kasutada<T> ka Lazy ülekoormusfunktsiooni,<T> Lazy (Func<T>), et edastada delegaat tagastusväärtusega, mis määrab lazy initsialiseerimise objekti omadusväärtuse.
Jooksu tulemus:
Märkus: Laisk<T> objekti initsialiseerimine on vaikimisi lõimede jaoks ohutu ning mitmelõimelises keskkonnas initsialiseerib esimene lõim, mis<T> pääseb ligi Lazy objekti Value omadusele, Lazy<T> objekti ning järgnevad juurdepääsulõimed kasutavad esmakordselt initsialiseeritud andmeid.
4. Rakendusstsenaariumid
On objekt, millel on palju lisakoormust, ja programm ei pruugi seda kasutada. Näiteks oletame, et teie programm laadib käivitamisel mitu objekti eksemplari, kuid vaid mõned instantsid tuleb kohe käivitada. Saate parandada oma programmi käivitustulemust, lükates ebavajalike objektide initsialiseerimise edasi kuni vajalike objektide loomiseni.
|