mercoledì 3 agosto 2011

System.Lazy T

Una novità del framework 4 è sicuramente questo curioso LAZY... a tutti gli effetti fornisce ad un tipo generico un "loader" in differita.

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: