11/17/2008

C# 4.0

В C# 4.0 добавлены новые возможности. Анонимные объекты можно передавать в метод и обращаться к свойствам/методам объекта:


public Form1()

{

var item = new { Id = 1, Value = "v1"};

Write(item);


var data = new { Id = 1, Name = "d1" };

Write(data);

}

public static void Write(dynamic value)

{

System.Diagnostics.Trace.Write(value.Id);

}

Появляется возможность приводить тип обобщенных делегатов:

delegate T Provider<out T>();
...

Provider<int> vp = delegate
{
return 1;
};
Provider<object> op = vp;
vp =(Provider<int>) op;

Добавлены значения параметров по-умолчанию и именованные параметры:

public void Method(int id, string name = "name", int value = 1)
{
}

вызывать можно так:
Method(1);
Method(1, "my name");
Method(1, value: 10);