Two new features to C# 4.0 are optional parameters and named parameters. Optional parameters have been a part of VB.Net but it's now possible to do this in C#. Instead of using overload methods, you can do this in C#:
private string ConcatanationNameAndSurname(string givenName,
string surname = "DUBAL", int age = 21)
{
return givenName + " " + surname +" "+ "AGE:"+age;
}
The second and third parameters, surname & age, both have default values. The only parameter required is givenName. To call this method you can either write this:
string name = null;
name = ConcatanationNameAndSurname("KARAN");
That will return "KARAN DUBAL 21". You can also do this:
string name = null;
name = ConcatanationNameAndSurname("ABC", "DEF");
The value returned is "ABC DEF 21". But what if you didn't want to specify a surname but you did want to pass the age? You can do this by using named parameters:
string name = null;
name = ConcatanationNameAndSurname("KARAN", age: 22);
The value returned is "KARAN 21"
These are nice additions to the language.