【发布时间】:2014-08-02 13:40:37
【问题描述】:
public void ObjTest(StringBuilder sb, List<string> list, int i = 0, [Optional] string bs)
{
......
}
上述代码抛出编译错误“可选参数必须出现在所有必需参数之后”。同一个方法参数中是否不支持可选参数和可选属性,但允许参数在可选参数之后?
【问题讨论】:
-
我不明白你的问题(或者为什么你在标题和正文中逐字重复,使用正文中的标题)。您是在问为什么允许/禁止某事,或者是允许什么?请澄清。
-
C# 从未正式支持 [Optional] 属性。它的含义在版本 4 中有所改变,用于制作 COM interop easier。这不是你应该考虑在你自己的代码中使用的东西,因为它可以生成奇怪的默认值。
-
@Hans Passant- 感谢您提供与 COM 互操作详细信息相关的信息。但是,我可以在框架 3.5 中像可选参数一样使用它。
标签: c# .net optional-parameters