首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Enum ?该如何处理

2014-01-13 
Enum ?是地。两者等同[解决办法]http://msdn.microsoft.com/zh-cn/library/system.enum.hasflag.aspx位与位

Enum ?


是地。两者等同
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.enum.hasflag.aspx
位与位或的应用,以前没注意到[Flags]的写法,都是自己手写的位运算判断,学习了;

DinnerItems myOrderA = DinnerItems.Appetizer 
[解决办法]
 DinnerItems.Entree 
[解决办法]
 DinnerItems.Beverage 
[解决办法]
 DinnerItems.Dessert=二进制1111

DinnerItems myOrderB = DinnerItems.Appetizer 
[解决办法]
 DinnerItems.Entree=二进制0011
bool a = (myOrderA & myOrderB) == myOrderB; // 1111&0011 = 0011
bool b = myOrderA.HasFlag(myOrderB);
所以HasFlag应该就是进行了的位与运算,用Reflactor看了一下,没找到真正的位运算部分,调用了系统的InternalHasFlag方法实现的,这样应该比自己再写那些位与位或效率更高吧

热点排行