【发布时间】:2011-04-26 09:32:30
【问题描述】:
我正在用一些带有命名参数和可选参数的方法替换一系列方法重载。
虽然这没有造成任何问题,但我发现在使用“out”时有一个扳手在工作。
例如
如果我打电话:
foo(int a, out int b, int c = -1, string d = "")
编译器会抛出一个错误,因为无论何时我调用此方法,它都不会看到它或将其识别为该方法的相关签名。
我意识到任何可选参数都必须在强制参数之后 -> 对于带有“out”的参数是否有任何此类规则,或者我是否遗漏了任何明显的东西?
【问题讨论】:
-
您使用的是什么版本的 Visual Studio(或框架)?这些功能是在 2010 年才添加的。
-
foo(int a, out int b, int c = -1, string d = "")在我看来不是一个有效的方法定义,而且它肯定不是一个有效的调用。您如何向我们展示您的真实代码?... 编辑:啊,这是新的 .NET4/VS2010 语法。我还没有享受到乐趣......我们仍在从 1.1 升级到 2.0 ;-) -
@corlettk -> 正确的@Nick vs 2010/.net4
-
我刚刚下载完 VS2010TrainingKitMarch2011.Setup.exe 我认为微软产品在 SP1 发布后变得“足够稳定,可以使用”;-)
标签: c# overloading optional-parameters out