- = C#中的运算符

NZ_*_*_DJ 0 c# operators

帮助,我无法理解这一点.

int value = 0;
int i = 5;

value -= i;
Console.WriteLine("Test5 = " + value.ToString());

value -= i - 2;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)

我认为输出将是:

Test5 = -5    // value = 0 - 5
Test5 = -2    // value = -5 --5 -2
Run Code Online (Sandbox Code Playgroud)

为什么是正确答案:

Test5 = -5
Test5 = -8
Run Code Online (Sandbox Code Playgroud)

-8来自哪里?

Joh*_*ica 6

简单的数学.

int value = 0;
int i = 5;

value -= i;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)

在上面的代码之后,我们有以下值:

value = -5

i = 5

接下来,你这样做:

value -= i - 2;
Console.WriteLine("Test5 = " + value.ToString());
Run Code Online (Sandbox Code Playgroud)

哪个可以改写为(注意后面所有内容的括号-=):

value = value - (i - 2);
Run Code Online (Sandbox Code Playgroud)

i= 5,所以i - 2= 3.

-5 - 3= -8.

显然,括号并不存在.这只是的右侧-=(或+=,*=,/=,^=,等)进行评估,以一个单一的数字第一.