Pri*_*ock 4 c# increment operators
关于这段代码我有两个问题......
为什么在第10行开始保持当前值.例如,
int a = 7
Run Code Online (Sandbox Code Playgroud)
(a += 4)
这是现在制作它11
的下一行代码.而不是仅仅将其用于可变初始宣布这是.怎么没有得到?是在运营商改变了我最初宣布它在代码的开始?是否仍持有价值在内存中,还是那些语句改变这种状况?(a -= 4)
7
a
7
3
=
+=
a
7
在最后一个MessageBox.Show()
声明.我a
通过1
使用增量a++
.但是,我获得了与之前相同的价值MessageBox.Show()
.怎么没有增加?
这是代码:
private void button1_Click(object sender, EventArgs e)
{
int a = 7;
int b = 3;
MessageBox.Show((a + b).ToString(), "a+b");
MessageBox.Show((a - b).ToString(), "a-b");
MessageBox.Show((a * b).ToString(), "a*b");
MessageBox.Show((a / b).ToString(), "a/b");
MessageBox.Show((a += 4).ToString(), "a+=4"); //adds 4 to a
MessageBox.Show((a -= 4).ToString(), "a-=4"); //substracts 4 from a
MessageBox.Show((a *= 4).ToString(), "a*=4"); //multiplies 4 from a
MessageBox.Show(a++.ToString(), "a++"); //adds 1 to a
}
Run Code Online (Sandbox Code Playgroud)
为什么我得不到3?"+ ="运算符中的"="是否会改变我最初在代码开头声明它的内容?
该+=
操作相当于:
a = a + 4
Run Code Online (Sandbox Code Playgroud)
有效地为其分配新值a
.
"a"在内存中仍然保持值7,或者这些语句是否会改变这种情况?
它没有.在您第一次分配后,它会发生变化.
在最后一个MessageBox.Show()语句.我使用"a ++"将"a"增加1.但是,我获得了与前一个MessageBox.Show()相同的值.怎么没有增加?
当你++
用作后缀时会发生这种情况.文档说:
第二种形式是后缀增量操作.操作的结果是操作数增加之前的值.
但是,如果您将它用作前缀:
MessageBox.Show((++a).ToString(), "++a");
Run Code Online (Sandbox Code Playgroud)
您将看到更新的值,再次如文档所述:
第一种形式是前缀增量操作.操作的结果是操作数增加后的值.