【发布时间】:2017-01-16 01:59:42
【问题描述】:
我可以在 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);
【问题讨论】:
-
@Vyas 现在 C# 4.0 是可能的
-
@nawfal 它问了很久,在使用可选参数时我遇到了一些问题。所以我更新了问题。
-
@VeeKayBee 没错,但你有什么问题吗(在编辑中)?如果您想说明这一点,为什么不在相关的帖子中回答它(甚至可能是这个)?
-
@nawfal 感谢您的建议。我会更新为答案
标签: c#