Tag: 运算符优先权

有趣的面试锻炼结果:返回,增量和参考行为

这是一个简单的控制台应用程序代码,它返回一个我完全不理解的结果。 试着想一下,在控制台中输出0,1还是2: using System; namespace ConsoleApplication { class Program { static void Main() { int i = 0; i += Increment(ref i); Console.WriteLine(i); Console.ReadLine(); } static private int Increment(ref int i) { return i++; } } } 答案是0。 我不明白的是为什么递增i++ ,从Increment方法,这是执行一个ref (而不是在传递variables的副本)增加variables,但它只是稍后被忽略。 我的意思是在这个video中: 有人可以解释这个例子,为什么在debugging期间,我看到值增加到1,但它回到0?