原文地址:C#4.0中的可选参数和命名参数
作者:venorie
最近看C#4.0,发现到可选参数和命名参数这两个之前没有过多了解的特性,研究了一下,然后就给自己留个学习笔记。
可选参数是从
C#4.0后添加上的,调用方法时不必指定每个参数,但可选参数必须放在必要参数(无默认值的参数)之后,而且可选参数要有默认值。因为有默认值,可选参数的应用也有不少限制,但加上命名参数就会大有用途。
static void Main(
string[] args)
{
//只传入一个参数"parameter1"
OptionalPars(
"parameter1");
Console.ReadKey();
}
//定义OptionalPars方法,必要参数parameter1,可选参数parameter2和parameter3
//如果可选参数没有默认值的话,
static void OptionalPars(
string parameter1,
string parameter2=
default(
string),
string parameter3=
default(
string))
{
Console.WriteLine(
"parameter1={0}nparameter2={1}nparameter3={2}", parameter1, parameter2, parameter3);
}
调试结果:
static void Main(
string[] args)
{
//一样调用OptionalPars()方法,传入两个参数"parameter1"和"parameter2"
OptionalPars(
"parameter1",
"parameter2");
Console.ReadKey();
}
调试结果:
命名参数最突出的就是不用按照参数顺序来给参数传值,结合上面的例子演示一下。
static void Main(
string[] args)
{
//运用命名参数给参数传值,格式为 [参数]:[值]
OptionalPars(parameter2:
"parameter2"
);
Console.ReadKey();
}
//这次我将三个参数都赋了默认值default(string)。
static void OptionalPars(
string parameter1=default(string)
, string parameter2=
default(string)
,string parameter3=
default(string)
)
{
Console.WriteLine(
"parameter1={0}nparameter2={1}nparameter3={2}", parameter1, parameter2, parameter3);
}
调试结果:
本人第二篇博文,初学C#,水平有限,请大家多多指教。