gpt4 book ai didi

c# - return和out参数的执行顺序

转载 作者:行者123 更新时间:2023-11-30 20:07:41 25 4
gpt4 key购买 nike

谁能解释一下为什么下面的程序会输出“4,6”而不是“4,4”。

MainProgram()
{
int x = 2;
int y = 0;

parse(4, out y);
Console.Write(y + ",");
y = y + parse(x, out y);
Console.Write(y);
}

int parse(int x, out int y)
{
y = x;
return y;
}

非常感谢!

最佳答案

我想您真的对 parse 的第二次调用很感兴趣,对吧?

+ 的操作数从左到右求值,然后进行加法运算,然后进行最终赋值。

这一行:

y = y + parse(x, out y);

逻辑上是:

int lhs = y;
// Now lhs = 4, x = 2, y = 4
int rhs = parse(x, out y);
// Now rhs = 2, x = 2, y = 2
y = lhs + rhs;
// Now y = 6

这对你有帮助吗?

关于c# - return和out参数的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8100245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com