要添加一个值,并为它分配回自己,我这样做:是否有&&和||的“赋值运算符”?速记?
x = x + y;
用于制备速记,我可以使用add assignment operator这样的:
x += y;
有没有像速记这对于& &和||运营商为这个?:
x = x && y;
我试过以下,结果是不一样的上面:
x &= y;
要添加一个值,并为它分配回自己,我这样做:是否有&&和||的“赋值运算符”?速记?
x = x + y;
用于制备速记,我可以使用add assignment operator这样的:
x += y;
有没有像速记这对于& &和||运营商为这个?:
x = x && y;
我试过以下,结果是不一样的上面:
x &= y;
你可以看到C#运营商here名单。
x & = y - AND赋值。并将y的值与x的值相加,将 的结果存储在x中,并返回新的值。
x | = y - 或分配。或将y的值与x的值相加,将 的结果存储在x中,并返回新的值。
当您说“结果不一样”时,您能提供您正在测试的x和y的示例值吗?
我认为你正在观察的是逻辑/按位AND/OR(&/|)和条件AND/OR(& &/||)之间的区别。如果不需要为了计算表达式的值,后者不会评估和。如果对和的评估有副作用,您会注意到按位运算符和条件运算符之间的差异。
不,没有,因为它没有太多的意义。
据MSDN,只有在C#以下shortand运营商:
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
的结果是不一样的,因为'X && = y'不会评估'y'如果'x'是假的,我假设。没有短路复合操作员。 –
这个问题只是为了知识或出于好奇等问题?因为x = x && y;本身就这么简短! – niksofteng
结果如何不一样? –