使用复合乘法语句时得到错误的结果 - C#

Getting wrong result when using Compound multiplication statement - C#

我注意到一些非常奇怪的事情。在下面的代码片段中,控制台输出的结果总是0

int result = 0;
for(int i = 1; i < 4; i++)
{
  result *= 10 + i;
}
Console.WriteLine(result);

看起来 result *= 10 + i; 总是将 10 乘以 result(其中 result0)而不添加 i

如果我只改变乘法线...

int result = 0;
for(int i = 1; i < 4; i++)
{
  result = result * 10 + i;
}
Console.WriteLine(result);

这会在控制台上输出正确的 result - 即 123

我的问题是,为什么 result *= 10 + i; 不能正常工作 - 并且总是将 result 作为 0

这是操作顺序的问题。

result = result * 10 + i

相当于...

result = (result * 10) + i

...但是...

result *= 10 + i

与...相同

result = result * (10 + i)