按位赋值运算符在C#
运营商像|=
和&=
工作作为整数和长位运算符...按位赋值运算符在C#
int a = 123;
int b = 234;
a |= b;
Console.WriteLine(a); // outputs 251
但在一个布尔值,它是一个逻辑操作:
bool a = true;
bool b = false;
a |= b;
Console.WriteLine(a); // outputs true
怎么办^=
,&=
和|=
运算符决定在应用于不同数据类型时使用哪种操作?
编译器根据涉及的表达式的静态类型来决定。
那么泛型病例呢?像'Foo
@PorkWaffles:你会得到一个编译错误,因为'T'不限于保证处理'|'运算符的接口/类型。 '“运算符'| ='不能应用于'T'和'T'类型的操作数'' –
啊,是的,我明白了。谢谢 :) – PorkWaffles
'但是在布尔,这是一个合乎逻辑的操作:'。嗯,是。但bools是单个位,因此按位OR与逻辑OR相同。 – Rob