【发布时间】:2011-03-25 21:05:09
【问题描述】:
MSDN 的 VS2010 Named and Optional Arguments (C# Programming Guide) 告诉我们 C# 中的可选参数,显示的代码如我所料:
public void ExampleMethod(int required,
string optionalstr = "default string",
int optionalint = 10)
好的,但它也说:
您也可以声明可选 使用 .NET 参数 可选属性类。 OptionalAttribute 参数不 需要一个默认值。
我阅读了MSDN's OptionalAttribute page,并在网上进行了搜索(这表明很多人声称 OptionalAttribute 参数不能被 C# 使用——我猜这些 cmets 是在 C# 4 之前制作的?),但我不能找到两个问题的答案:
如果我使用 OptionalAttribute 将 C# 参数定义为可选:
- 如果我调用该方法但未指定该参数的值,将使用什么值?
- 会在编译时或运行时评估该值吗?
【问题讨论】:
-
在调试中运行它并检查它的值。我会怀疑 null。
-
好吧,我怀疑
default(T)是 null 或零。
标签: c# default-value optional-parameters