位域[Flags]
关于位域的东西,网上讲的人很多,不少人写的很不错,建议大家可以去看这两篇文章:C# 位域[Flags]和简要介绍C#位域(flags)的相关知识,这两个看下,关于位域的东西基本上应该基本ok了,这里补充说明一些自己学到的心得,看代码:
[Flags] public enum MediaFlags { //注意一下这个None None = 0, NewAdd = 1, Upload = 1 << 1, MovePlace = 1 << 2, Delete = 1 << 3, }
这里定义的枚举MediaFlags和平时大家用的基本没区别,唯一不一样的就是把0定义成了枚举值之一None,这样也没有太多好处,也不会有坏处(个人认为),不过在写代码过程中可能会更明了,如:
(mediaFlag & (MediaFlags.NewAdd | MediaFlags.Delete | MediaFlags.Upload)) == MediaFlags.None;