递增赋值运算符左侧的数组索引

increment array index left side of assignment operator

int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[i++] = array[i]+5;
   
var result = string.Join(",", array);
Console.WriteLine(result);

你能解释一下第 3 行的工作原理吗?我的意思是为什么答案是 1,8,3

您的代码可以翻译成:

int[] array = new int[]{ 1, 2, 3 };
int i = 1;
array[1] = array[2]+5;

因为 i++ 的意思是:使用 i 的旧值然后将其递增 1。因此在赋值 array[i]+5 时,i 将具有新值2.

如果您改为使用 ++i,它将“翻译”为:

array[2] = array[2]+5;

因为++i意味着:在你使用它之前增加它。