可选参数允许为方法的一些参数提供默认值,并允许仗用者重载类型,因此,即使
只有一个方法,也能处理所有变体。下面是一个例子:
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)氵
现在通过命名参数,就很容易阋读和理解这行代码将执行的操作。使用命名参数对最终的编译
没有影响,命名参数仅用在应用程序的编码中。