我目前正在努力理解什麼時,它說,與「出」的關鍵字,我們能夠回多個值這個意思。例如從msdn站點(https://msdn.microsoft.com/en-us/library/ee332485.aspx):「...下面的示例使用到返回三個變量與一個單一的方法調用。」返回與多值的「出」關鍵字在C#
class OutReturnExample
{
static void Method(out int i, out string s1, out string s2)
{
i = 44;
s1 = "I've been returned";
s2 = null;
}
static void Main()
{
int value;
string str1, str2;
Method(out value, out str1, out str2);
// value is now 44
// str1 is now "I've been returned"
// str2 is (still) null;
}
}
我不知道如果我只是沒有閱讀說明書的權利,但它似乎是()方法實際上並不返回(不使用「回」關鍵字)任何東西所有和基本上分配領域(類似地通過由ref傳遞)。這與其他消息來源一致,他們聲稱使用'出'可以返回多個值。我是否誤解了返回詞的上下文,還是我沒有正確理解這個概念?
'out'關鍵字意味着在方法調用之後,這些變量必須分配一些東西。 – dcg
它在語義上等同於返回。你調用一個方法,並且你的「out」變量充滿了結果,就像當你調用一個返回類型的方法並且有一個變量充滿了結果一樣。 – Evk
'out'關鍵字意味着外部範圍中的所有值將被「創建」和「分配」。你可以說他們已經被返回,因爲'out'聲明瞭合約,這些值必須在當前的mehtod中改變。 –