没有声明变量的参数

时间:2014-07-08 11:25:37

标签: c# out

我有一个方法

TrySplitStringTwoParts(string data, string separator, out string prefix, out string suffix)

以下列方式调用:

string data = "x.y", r1,r2;
TrySplitStringTwoParts(data, ".", out r1, out r2)

我对使用r1不感兴趣,即。它除了这个电话之外从未使用过。 我是否可以按照TrySplitStringTwoParts(data, ".", out r1, out r2)的方式致电,以便不宣布r1

2 个答案:

答案 0 :(得分:4)

你现在不能这样做。但这是将在C# 6中添加的功能之一。请参阅roslyn Language feature implementation status page

-----------------------------------------------------------------
| Feature                 | Example                      | C#   |            
-----------------------------------------------------------------
| Declaration expressions | int.TryParse(s, out var x);  | Done |
-----------------------------------------------------------------

那么你就能做到这一点:

TrySplitStringTwoParts(data, ".", out string r1, out string r2)

当然这只会将声明移到另一个地方,而不是声明变量是不可能的。如果你有一个ref / out参数,那么你必须声明并提供一个参数。如果你那么你不应该想要这个参数,也许你应该考虑改变你的方法签名或使用方法重载。

答案 1 :(得分:0)

不,你不能。无论您是否实际使用该变量,都必须在调用中传递refout个参数。