.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
 
Sign In
Register
 
Win Surprise Gifts!!!
Congratulations!!!


Top 5 Contributors of the Month
david stephan

Home >> Articles >> C# >> Post New Resource Bookmark and Share   

 Subscribe to Articles

An Overview of Named Argument in C# 4.0

Posted By:Dhananjay Kumar       Posted Date: December 08, 2009    Points: 25    Category: C#    URL: http://www.dotnetspark.com  
 

An Overview of Named Argument in C# 4.0

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.

Named Argument

img1.gif

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.


2.gif

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,

  static int Sum(int number1, int number2)
  {
  return number1 + number2;
  }


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

img3.gif

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.

img4.gif

Complete sample

Program.cs

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;
  }
  }
}

Output:

img5.gif

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.


 Subscribe to Articles

     

Further Readings:

Responses

No response found. Be the first to respond this post

Post Comment

You must Sign In To post reply
Find More Articles on C#, ASP.Net, Vb.Net, SQL Server and more Here

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend