【发布时间】:2017-08-19 04:41:46
【问题描述】:
使用Optional 和DefaultParameterValue 属性和不使用它们有什么区别吗?
public void Test1([Optional, DefaultParameterValue("param1")] string p1, [Optional, DefaultParameterValue("param2")] string p2)
{
}
public void Test2(string p1= "param1", string p2= "param2")
{
}
两者都有效:
Test1(p2: "aaa");
Test2(p2: "aaa");
【问题讨论】:
-
好问题,甚至不知道这些属性存在。
-
有,但是你在写这样的代码的时候,在实践中不太可能遇到。 [可选] 属性在 C# 版本 4 中被劫持,以帮助编写更简单的 COM 互操作代码。参数必须是没有默认值的对象才能看到它,然后调用者传递 Type.Missing。使用提供的语法糖当然总是最好的。
标签: c# c#-4.0 optional-parameters