Named Argument in C# 4.0

No.of Views870
Bookmarked0 times
Downloads 
Votes0
By  Dhananjay Kumar   On  16 Feb 2010 00:02:55
Tag : CSharp , Miscellaneous
Named Argument in C# 4.0
emailbookmarkadd commentsprint

Images in this article missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at info@codegain.com

 

Objective:

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.

Image loading...

Download Source code-CS

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.

Image Loading...

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

Sample:

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,

{codecitation class="brush: csharp; gutter: true;" width="650px"}

static int Sum(int number1, int number2)
{

return number1 + number2;
}

{/codecitation}


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

Image loading....

Normal way of calling

{codecitation class="brush: csharp; gutter: true;" width="650px"}

int resnoraml = Sum(7, 2);

{/codecitation}

Calling as named parameter

{codecitation class="brush: csharp; gutter: true;" width="650px"}

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

{/codecitation}


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

Named Argument and Positional argument

{codecitation class="brush: csharp; gutter: true;" width="650px"}

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

{/codecitation}


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

{codecitation class="brush: csharp; gutter: true;" width="650px"}

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

{/codecitation}

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

Image loading....

Complete sample

Program.cs

{codecitation class="brush: csharp; gutter: true;" width="650px"}


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);
Console.WriteLine(resnoraml.ToString());

int res = Sum(number1: 7, number2: 2);
Console.WriteLine(res.ToString());

int resreverse = Sum(number2: 7, number1: 2);
Console.WriteLine(resreverse.ToString());

int respositional = Sum(2, number2: 7);
Console.WriteLine(respositional.ToString());

// int reserror = Sum(number1: 7, 2);
Console.ReadKey(true);

}


static int Sum(int number1, int number2)
{

return number1 + number2;
}

}
}


{/codecitation}

Output

Image Loading....

Conclusion:
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.Happy Coding.

Thank you


About the Author


Dhananjay Kumar
Description :I done my engineering from Anand Engineering college Agra in 2007. I am MCTS WCF, MCTS MOSS Development, I am MCTS Web Development . I am native of Jamshedpur. Currently Please feel free to contact me regarding any clarification of my article at Dhananjay.25july@gmail.com

Occupation : Software Engineer
Company : UST Global.
Location : India
Follow me at twitter : http://twitter.com/dhananjay25


 
Sign Up to vote for this article
 
About Author
 
Dhananjay Kumar
Occupation-Software Engineer
Company-Infosys Technolgies,Pune
Member Type-Gold
Location-India
Joined date-20 Jul 2009
Home Page-http://dhananjaykumar.net/
Blog Page-http://dhananjaykumar.net/
Dhananjay Kumar is Microsoft MVP on connected system. He blogs at http://dhananjaykumar.net/ . You can follow him http://twitter.com/debugmode_/ and reach him at dhananjay.25july@gmail.com
 
 
Other popularSectionarticles
Comments
There is no comments for this articles.
Leave a Reply
Title:
Display Name:
Email:
(not display in page for the security purphase)
Website:
Message:
Please refresh your screen using Ctrl+F5
If you can't read this number refresh your screen
Please input the anti-spam code that you can read in the image.
^ Scroll to Top