Lo scopo potrebbe essere di effettuare delle operazioni ( di vario genere sui dati, tipo aggregazioni, modifiche, inserimenti ) mentre la classe si sta costruendo.
Il beneficio è che tecnicamente sappiamo quando il dato sarà davvero pronto.
Se poi riesco a spiegare il concetto con semplicità è ancora meglio.
static void Main(string[] args)
{
var lazyString = new Lazy<string>(
() =>
{
Console.Write("eddai aspetta...");
for (int i = 0; i < 100000; i++)
{
// supponiamo che qui si costruisca l'output
}
return "Bene ho caricato quel che dovevo";
});
Console.Write("Ehi stai caricando il dato ?");
Console.WriteLine(lazyString.IsValueCreated);
Console.Write("E che cosa contieni?? ");
Console.WriteLine(lazyString.Value);
Console.Write("Quindi ha Fatto ? ");
Console.WriteLine(lazyString.IsValueCreated);
Console.ReadLine();
Il risultato ( sembra un dialogo fra pazzi ) tuttavia rende l'idea.
Nessun commento:
Posta un commento