位域[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;

原文地址:https://www.cnblogs.com/yuqf/p/3054699.html