Named Argument in c# 4.0


In this article I will talk about a very new and highly useful feature of c# 4.0. I will give introduction of Named Argument. I will give one sample on possible usage of Named Argument.

Five facts about Named argument

  1. There is no need to remember order of the parameter in parameter list.
  2. The parameter for each argument can be specified by parameter name.
  3. Now we do have option of specifying the parameter by name rather than by their position.
  4. At the code behind compiler is creating the inline instances for named parameter and passing it to the constructor.
  5. It improves the readability of the code by identifying what each argument represents.

In above line of code, we are passing argument with their name. Name of the parameters are number1 and number2.

This sample is having one function. This function is taking two int as input parameter and, returning sum of these two numbers. We will be calling this function with usual way and as named parameter.
Function is as like below,


int Sum(int number1, int number2)


{return number1 + number2;


In c#4.0 gives full intelli sense support to named arguments.

Normal way of calling

int resnoraml = Sum(7, 2);

Calling as named parameter
int res = Sum(number1: 7, number2: 2);

Int resreverse = Sum(number2: 7, number1: 2);

We could see from above code samples that, we could pass argument in any order.

Named Argument and Positional argument

int respositional = Sum(2, number2: 7);

Whereas, the below line of code will throw compile time error. Because, positional argument can not follow a named argument.

int reserror = Sum(number1: 7, 2);

Compile time error will be as below for the above line of code.

Complete sample


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace namedparameter


class Program{

static void Main(string[] args){
int resnoraml = Sum(7, 2);
int res = Sum(number1: 7, number2: 2);
int resreverse = Sum(number2: 7, number1: 2);
int respositional = Sum(2, number2: 7);
static int Sum(int number1, int number2)
return number1 + number2;


In this article, I talked about a very new feature of C#4.0. This is Named Argument. Please download the attached code for better understanding. Thank you for reading.

Published by

Dhananjay Kumar

Dhananjay Kumar is Developer Evangelist for Infragistics. He is a 8 times Microsoft MVP and well respected Developer Advocate in India.He is the author of 900+ Blog Posts, and can often be found speaking around India at conferences and hosting free workshops for programmers across the country. So far, he has hosted 60 free workshops on various topics like JavaScript, Angular, WCF, ASP.NET MVC, C#, Azure etc. Follow him on twitter @debug_mode for all the updates about his blog posts and workshops. You can send him email at debugmode [at] outlook [dot] com

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s