【C#】方法中默认参数的替换实现
用惯了VC,VB的人,对于函数方法参数列表中的默认参数(或称缺省参数)一定不会陌生。例如:
public void ShowText(string strText, bool bBold = false)
{
……
}
或者VB中的optional定义,都是用于当编程调用这个方法的时,可以根据情况少输入一些参数。而在方法执行的时候,会根据默认值对这些参数赋值。
当然,默认参数,只能是参数列表中的后几位。
而在C#中,取消了这种机制,因为它鼓励我们更多的使用重载方法来实现,而且具体过程显得更为灵活。
例如,同样是上例,首先需要定义完整的方法:
public void ShowText(string strText, bool bBold)
{
……
}
然后我们可以定义它的重载方法:
public void ShowText(string strText)
{
ShowText(strText, false);
}
看明白了吗?如果在调用的时候,只输入一个参数,程序在执行时便会调用它的重载方法,而重载方法的实现,是调用原方法,同时给缺少的参数进行赋值。
这样做有什么好处?那即是,我们可以在重载方法中加入一些额外的逻辑,也可以对参数列表中的参数进行二次计算,使得最底层的调用更加严格。