2 cx510119425 cx510119425 于 2016.01.26 16:58 提问

C#枚举类型的问题

刚接触计算机语言
请问
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };//1
Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;//2
Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow;//3
第2、3行是什么意思??
得到什么结果?

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.27 07:52
 Colors myColors = Colors.Red & Colors.Blue & Colors.Yellow;//3
这个结果应该是0而不是3

Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;//2
这个结果应该是13而不是2

对于位掩枚举(枚举的值是2的幂,1 2 4 8 16...)不同的枚举 | 的结果相当于加,&的结果是0。

Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;
Colors myColors = Colors myColors & ~Colors.Red;
这样写的结果相当于
Colors myColors = Colors.Blue | Colors.Yellow;
cx510119425
cx510119425 请问下向 这样写Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;有什么含义作用吗
接近 2 年之前 回复
bdmh
bdmh   Ds   Rxr 2016.01.26 17:00

安位操作,可以组合多种颜色,就好像你设置控件属性时,有的属性,你可以选择多种 ,用竖线连接

doudouqq2009
doudouqq2009   2016.01.26 17:06

属性多选,所以要分隔开的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!