&&是否有“和赋值运算符”和||简写?

时间:2015-11-20 04:42:59

标签: c# c#-4.0

要添加一个值并将其分配回自身,我会这样做:

x = x + y;

为了制作这种速记,我可以像这样使用add assignment operator

x += y;

&&&&和||运营商为此?:

x = x && y;

我尝试了下面的内容,结果与上面的结果不一样:

x &= y;

2 个答案:

答案 0 :(得分:2)

您可以看到C#运算符列表here

  

x& = y - 和分配。和y的值与x的值,存储   结果为x,并返回新值。

     

x | = y - OR赋值。或者y的值与x的值,存储   结果为x,并返回新值。

当您说“结果不一样”时,您能提供您正在测试的x和y的示例值吗?
我认为你所观察到的是逻辑/按位AND / OR(& / |)和条件AND / OR(&& / ||)之间的区别。如果不需要为了弄清楚表达式的值,后者将不会评估 y 。如果 y 的评估有副作用,您会注意到按位运算符和条件运算符之间存在差异。

答案 1 :(得分:1)

不,没有,因为它没有多大意义。

根据MSDN,C#中只有以下短操作符:

x += y – increment
x -= y – decrement    
x *= y – multiplication assignment
x /= y – division assignment
x %= y – modulus assignment
x &= y – AND assignment
x |= y – OR assignment
x ^= y – XOR assignment
x <<= y – left-shift assignment
x >>= y – right-shift assignment