我可以在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);