3
static int Test(out int x, int y=4)
{
x = 6;
return x * y;
}
static void Main(string[] args)
{
int a;
int z = Test(out a);
Console.WriteLine(a + z);
}
輸出是30,但我不明白如何。有人可以請解釋這個C#代碼的邏輯,涉及'傳遞輸出'的概念?
在Test()方法中,參數x將6的值輸出到Main()方法中,但是如果只是輸出6,它會發送24的返回值嗎?
我不知道這一切是否有意義。我想,我正在爲這個「傳遞輸出」概念而掙扎。
請嘗試以最簡單的巴尼式樣的方式來解釋這個概念。如果技術過於複雜,它可能會讓我更加困惑。下面
那麼由於'x * y'的返回表達式,它將'a'設置爲6並*返回* 24。所以'a'是6,'z'是24.你不明白哪一個?這將幫助我們幫助你。 –
我猜測代碼中缺少第二個參數「測試」爲「測試(out a,??)。我猜這不會有問題,因爲它被設置爲4任何方式?只是一個想法 – JohnG
Jon:我想我很困惑,因爲我認爲當它說 int z = Test(out a)它只會拉扯x的值,而不是整個返回語句值所以,我在想,z = 6,而不是24. – Jess