1
在編寫代碼時,我有時會發現,如果需要,返回成功的bool值和代碼的out參數非常有用。甚至可以使用TryParse
函數及其各自的輸出參數。在方法調用中內聯out參數
最近的一個例子是下面的方法簽名:
private State GetTheStateOfClass1(Class1 o, out double confidence)
這裏我有一個查找Class1
對象的狀態和其相應的信心,對象確實有狀態的方法。
創造Class2
像這樣一個新的實例時,此方法用於:
double confidence;
Class2 c2 = new Class2(GetTheStateOfClass1(o, out confidence), confidence, ...);
有沒有一種方法,我可以使用內聯的輸出參數,像這樣:
Class2 c2 = new Class2(GetTheStateOfClass1(o, out double confidence), confidence, ...);
我建議'Tuple'或'StateWithConfidence'。 'out'參數已經是meh,但是當你將它們包含在表達式中時,它們都被設置和使用,這是雙重的meh。 '新的Class2(o.GetStateWithConfidence())'(這可以是一個擴展方法,如果需要的話),或者只是'新的Class2(o)',讓'Class2'自己弄清楚事情的可讀性。當然是主觀的。 –
在C#7中,[這應該成爲可能,完全按照您提出的語法](https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0 /)。最終的例子是否最終要編譯(在聲明的同一個語句中使用內聯參數)仍然是一個懸而未決的問題。 –
@JeroenMostert哦真棒是確認了嗎?如果它確認了,你可以將它作爲答案張貼嗎? – TheLethalCoder