C# 是否有一个「;“和赋值运算符”;for&&;还有| |速记?
要添加值并将其分配回自身,我将执行以下操作:C# 是否有一个「;“和赋值运算符”;for&&;还有| |速记?,c#,c#-4.0,C#,C# 4.0,要添加值并将其分配回自身,我将执行以下操作: x = x + y; 为了进行速记,我可以使用如下方法: x += y; 是否有类似于此的&&and | |运算符速记法 x = x && y; 我尝试了以下方法,结果与上面不同: x &= y; 您可以看到C#运算符的列表 x&=y–和赋值。y的值和x的值一起存储 将结果输入x,并返回新值 x |=y–或赋值。或者y的值与x的值一起存储 将结果输入x,并返回新值 当你说“结果不一样”时,你能提供你正在测试的x和y的示
x = x + y;
为了进行速记,我可以使用如下方法:
x += y;
是否有类似于此的&&and | |运算符速记法
x = x && y;
我尝试了以下方法,结果与上面不同:
x &= y;
您可以看到C#运算符的列表
x&=y–和赋值。y的值和x的值一起存储
将结果输入x,并返回新值
x |=y–或赋值。或者y的值与x的值一起存储
将结果输入x,并返回新值
当你说“结果不一样”时,你能提供你正在测试的x和y的示例值吗?我认为您所观察到的是逻辑/位AND/OR(&/|)和条件AND/OR(&&/||)之间的区别。如果不需要计算y来计算表达式的值,则后者将不计算y。如果y的计算有副作用,您会注意到按位运算符和条件运算符之间的差异。不,没有,因为它没有太多意义 根据,C#中只有以下shortand运算符:
x+=y–增量
x-=y–减量
x*=y–乘法赋值
x/=y–除法赋值
x%=y–模数分配
x&=y–和赋值
x |=y–或赋值
x^=y–异或赋值
x=y–右移分配
结果不一样,因为如果x
为假,我假设x&&=y
不会计算y
。不存在短路复合算子。这个问题只是为了知识还是出于好奇等?因为x=x&&y;它本身写起来太短了!结果如何不一样?
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