【发布时间】:2014-02-25 02:38:10
【问题描述】:
有什么区别
Method(int arg0 = 0) vs Method([Optional] int arg0 = 0);
每当我试图调用这个方法时,编译器都会说它的模棱两可的情况。我知道为什么这是模棱两可的情况,我的兴趣是如果它们促进相同的事物 = 可选参数,那两者之间有什么区别。然而,他们以不同的方式这样做,在视觉上列出 - 不知道引擎盖下的情况。
有人向我指出,第一种方式实际上是为 DEFAULT 使用的,这意味着您将初始化默认值,而第二种方式是 OPTIONAL,它在您不定义任何默认值的情况下使用 - 虽然它是有道理的,但是它们两者都可以很容易地分配值而不是。它们的真正区别和用途是什么?
【问题讨论】:
-
Method([Optional] int arg0 = 0)是如何编译的? 编辑[System.Runtime.InteropServices.Optional],我认为它是多余的。 -
OptionalAttribute从 .NET 1.1 开始就在我们身边。C#特别不支持可选参数的事实是另一回事 - 它在VB.NET中占有一席之地。当 C# 4.0 也添加了可选参数时,它对同一件事使用了简化的语法。
标签: c#