Usi “strani” del linguaggio
A prima vista a nulla, soprattutto il parametro “obj” che viene completamente ignorato… , ma se saltiamo di palo in frasca e facciamo una cosa curiosa del genere:IListCreate ( T obj )
{
return new List();
}
Allora potremmo dire che anche questo funziona:static void Main( string[] args )
{
var a = new { SampleProperty = "mauro" };
var b = new { SampleProperty = "mauro" };
Console.WriteLine( a.GetType() == b.GetType() ); //true...
Console.WriteLine( a.GetType().IsAssignableFrom( b.GetType() ) ); //true...
Console.WriteLine( b.GetType().IsAssignableFrom( a.GetType() ) ); //true...
Console.Read();
}
Figo stiamo usando il primo “anonymous type” come template per il tipo T del metodo “Create” creando a tutti gli effetti una lista di “anonymous types” fortemente tipizzata.static void Main( string[] args )
{
var list = Create( new { SampleProperty = "" } );
list.Add( new { SampleProperty = "mauro" } );
var item = list.First();
Console.WriteLine( item.SampleProperty );
Console.Read();
}
.m