65.9K
CodeProject is changing. Read more.
Home

Named and optional parameters in C# 4.0

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.58/5 (19 votes)

Aug 16, 2009

CPOL
viewsIcon

77031

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:

//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:

MyOldCurrencyExchange(500, 1.18);

Now, by using Optional parameters:

//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:

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

Now, by using Named parameters:

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

Now, by using Named and Optional parameters:

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.