This post explains the usage of c# 4.0's new feature "named and optional arguments". This feature is mostly useful when we have methods defined with large number of parameters. It is hard to remember the list of parameters in order. So by using named arguments we can pass the arguments in any order. And also many times it is possible that, we don't want to pass all arguments but use default values. This requirement is replaced by "optional parameters" feature.