读书人

Enum ?该如何处理

发布时间: 2014-01-13 17:16:02 作者: rapoo

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方法实现的,这样应该比自己再写那些位与位或效率更高吧

读书人网 >C#

热点推荐