我可以在C#中提供默认参数吗?
在C中:
void fun(int i = 1)
{
printf("%d", i);
}
我们可以给参数一个默认值吗?在C#中可以吗?如果是这样,我们可以避免函数重载吗?
在现有函数中添加可选参数始终是一种不好的做法。如果您正在处理的项目必须引用具有函数的类,而我们使用可选值更改了参数,则可能会抛出运行时异常,即找不到该方法。
这是因为我们认为如果添加一个额外的可选值,则在许多地方使用该函数都无需更改代码。
function Add(int a, int b);
这将通过以下方式调用:
Add(10, 10);
但是,如果我们添加这样的可选参数,
function Add(int a, int b, int c = 0);
然后编译器期望
Add(10, 10, 0);
实际上,我们这样调用,Add(10, 10)而该函数在该类中不可用,并导致运行时异常。
这是在将新参数添加到函数中而被很多地方调用的同时发生的,我不确定每次都会发生这种情况。但我建议您重载该功能。
我们总是需要重载具有可选参数的方法。同样,如果您正在使用具有多个可选参数的函数,则最好使用参数名称传递值。
function Add(int a, int b, int c = 0);
使用以下方式调用此函数总是好的。
Add(10, 20, c:30);