2014-07-08 49 views
0

我有一個方法出論點沒有聲明的變量

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

+0

r1和r2在哪裏申報? – DevEstacion

+0

@RonaldEstacion - string data =「x.y」,r1,r2; – Yakov

+0

如何重載它? –

回答

4

現在你不能這樣做。但是,這是將在C# 6。看到添加的羅斯林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) 

Ofcourse,這隻會聲明移到另一個地方,不聲明變量是不可能的。如果你有一個ref/out參數,那麼你必須聲明並提供一個參數。如果你不想要這個參數,那麼也許你應該考慮改變你的方法簽名或使用方法重載。

+2

它只允許你在不同的地方聲明變量,但你仍然必須聲明它們。 – Guffa

0

不,您不能。 refout參數必須在調用中傳遞,而不管稍後是否實際使用該變量。