Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Named and optional parameters in C# 4.0

0.00/5 (No votes)
16 Aug 2009 1  
In this article, I will explore named and optional parameters in C# 4.0.

Introduction

In this article, I will explore named and optional parameters in C# 4.0. Named and optional parameters are really two distinct features, and allow us to either omit parameters which have a defined default value, and/or to pass parameters by name rather than position. Named parameters are passed by name instead of relying on its position in the parameter list, whereas optional parameters allow us to omit arguments to members without having to define a specific overload matching.

Let’s have a look at Optional parameters:

C#
//In old way we will write the code as shown below.
public static double MyOldCurrencyExchange(double amount, double rate) 
{ 
    return (amount * rate); 
}

We will call the above method as shown below:

C#
MyOldCurrencyExchange(500, 1.18);

Now, by using Optional parameters:

C#
//In new way we will write the code as shown below
public static double MyNewCurrencyExchange(double amount, double rate=1) 
{ 
    return (amount * rate); 
}

We will call the above method as shown below:

C#
MyNewCurrencyExchange (500, 1.18);  // ordinary call 
MyNewCurrencyExchange (500);  // omitting rate

Now, by using Named parameters:

C#
MyNewCurrencyExchange (rate:1.18, amount:500); // reversing the order of arguments.

Now, by using Named and Optional parameters:

C#
MyNewCurrencyExchange (amount:500);

Summary

In this article, we explored C# 4.0’s new features: Named and Optional parameters, and I will continue to explore C# 4.0's other new features in the next article.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here