.NET 4 可选参数和命名参数
2012-11-08 11:31
375 查看
可选参数允许为方法的一些参数提供默认值,并允许仗用者重载类型,因此,即使
只有一个方法,也能处理所有变体。下面是一个例子:
public void CreateUser(string firstname, string lastname,
bool isAdmin, bool isTrial User)
(
)
如果要重载这个方法,并为两个bool对象提供默认值,就很容易得到好几个方法,为使用者填
充这些值,然后调用主方法,以实际创建用户。现在通过可选参数,就可以编写下面的代码:
public void CreateUser(string firstname, string lastname,
bool isAdmin = false, bool isTrialUser = true)
(
) ,
查看这段代码,mtname和lasmame参数没有设置默认值,而o虫h血和、△龃User参数设置
了默认值。使用者现在可以编写如下代码:
myClass.CreateUser("Bill"` "Evjen");
myClass.CreateUser〈"Bill"、 "Evjen"、 trve)`
myC△ ass.CreateUser("Bill"、 "Evjen’'、 true、 fa△ se);
myClass,CreateUser("Bi△ 1"、 "Evjen"` isTrai△ User: fa1se)氵
) 上一个例子使用了命名参数丿这也是在,NET Fmmework的这个版本中唧的一个新功能。命名
参数会潜在地改变编写代码的方式。这个新功能能使代码更容易阅读和理解。例如,看一下systm。Io
名称空间中的F仉,CopyO方法,它一般构建为:
Fi△ e,Copy(e"C:\myTestF± △e.txt"` @"C:\myotherFile.txt"` true)`
在这行代码中,这个简单的方法使用3个参数,但实际传递给CopyO方法的是什么内容?除非
知道这个方法的前前后后,否则仅看一眼该方法,很难判断出该方法会执行何种操作。而通过命名
参数,就可以在提供参数值之前使用代码中的参数名,如下面的示例所示:
Fi1e。Copy〈s°vrceFi△ eName: e"C:\myTestFile.txt"、
destFileName: @"C:\myotherFi△ e.txt"、 oVerWrite: true)氵
现在通过命名参数,就很容易阋读和理解这行代码将执行的操作。使用命名参数对最终的编译
没有影响,命名参数仅用在应用程序的编码中。
只有一个方法,也能处理所有变体。下面是一个例子:
public void CreateUser(string firstname, string lastname,
bool isAdmin, bool isTrial User)
(
)
如果要重载这个方法,并为两个bool对象提供默认值,就很容易得到好几个方法,为使用者填
充这些值,然后调用主方法,以实际创建用户。现在通过可选参数,就可以编写下面的代码:
public void CreateUser(string firstname, string lastname,
bool isAdmin = false, bool isTrialUser = true)
(
) ,
查看这段代码,mtname和lasmame参数没有设置默认值,而o虫h血和、△龃User参数设置
了默认值。使用者现在可以编写如下代码:
myClass.CreateUser("Bill"` "Evjen");
myClass.CreateUser〈"Bill"、 "Evjen"、 trve)`
myC△ ass.CreateUser("Bill"、 "Evjen’'、 true、 fa△ se);
myClass,CreateUser("Bi△ 1"、 "Evjen"` isTrai△ User: fa1se)氵
) 上一个例子使用了命名参数丿这也是在,NET Fmmework的这个版本中唧的一个新功能。命名
参数会潜在地改变编写代码的方式。这个新功能能使代码更容易阅读和理解。例如,看一下systm。Io
名称空间中的F仉,CopyO方法,它一般构建为:
Fi△ e,Copy(e"C:\myTestF± △e.txt"` @"C:\myotherFile.txt"` true)`
在这行代码中,这个简单的方法使用3个参数,但实际传递给CopyO方法的是什么内容?除非
知道这个方法的前前后后,否则仅看一眼该方法,很难判断出该方法会执行何种操作。而通过命名
参数,就可以在提供参数值之前使用代码中的参数名,如下面的示例所示:
Fi1e。Copy〈s°vrceFi△ eName: e"C:\myTestFile.txt"、
destFileName: @"C:\myotherFi△ e.txt"、 oVerWrite: true)氵
现在通过命名参数,就很容易阋读和理解这行代码将执行的操作。使用命名参数对最终的编译
没有影响,命名参数仅用在应用程序的编码中。
相关文章推荐
- C# 4.0 新特性dynamic、可选参数、命名参数等 分类: .NET 2013-07-26 11:15 414人阅读 评论(0) 收藏
- dynamic类型,.net命名参数,可选参数列表
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barrier
- 命名参数和可选参数在.NET中的使用
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barrier
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barrier
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数
- .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器
- C#4.0新特性:可选参数,命名参数,Dynamic
- C# 关于方法中的参数(可选参数和命名参数)
- C# 4.0 新特性dynamic、可选参数、命名参数等
- C#4.0新特性:可选参数,命名参数,Dynamic
- 深入C# 4.0 新特性dynamic、可选参数、命名参数的详细介绍
- .NET中那些所谓的新语法之一:自动属性、隐式类型、命名参数与自动初始化器
- C# 方法的可选参数、命名参数
- C#4.0可选参数和命名参数
- C# 4.0 新特性dynamic、可选参数、命名参数等
- [置顶] 可选参数及命名实参在一起
- c# 可选参数与命名实参
- C#4.0新特性 可选命名参数