2012/11/28

C# 4.0's New Features

Named and Optional Parameters
public class Person
{
    public Person(string name, string gender = "Unknow", int age = 18) { }
}

var p1 = new Person("Bruce");  // only primary parameter
var p2 = new Person("Bruce", "Male");  // one optional parameter
var p3 = new Person("Bruce", "Male", 20);  // all parameters
var p4 = new Person("Bruce", age: 20);  // specified optional parameters

Dynamic Support
dynamic foo = 123;
foo = "foo";

dynamic p = new System.Dynamic.ExpandoObject();
p.age = 20;
p.name = "bruce";