您的位置:首页 > 其它

.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)氵

现在通过命名参数,就很容易阋读和理解这行代码将执行的操作。使用命名参数对最终的编译

没有影响,命名参数仅用在应用程序的编码中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: