MSDN 的 VS2010 Named and Optional Arguments (C# Programming Guide)向我们介绍了 C# 中的可选参数,显示了我期望的代码:
public void ExampleMethod(int required,
string optionalstr = "default string",
int optionalint = 10)
好的,但它也说:
您还可以使用 .NET OptionalAttribute 类声明可选参数。OptionalAttribute 参数不需要默认值。
我阅读了MSDN 的 OptionalAttribute 页面,并在线完成了搜索(这表明很多人声称 OptionalAttribute 参数不能被 C# 使用——我猜这些评论是在 C# 4 之前提出的?),但我找不到答案两个问题:
如果我使用 OptionalAttribute 将 C# 参数定义为可选:
- 如果我调用该方法并且不指定该参数的值,将使用什么值?
- 将在编译时或运行时评估该值吗?