• 枚举值思考与为什么使用1,2,4,8,16,32等2的幂方


    官方文档

    参考文档

    以前的枚举命名规则

    之所以用10开头而不用1,2,3,4,是考虑到业务变更频繁,可以在中间插10个状态,如此扩展性相对较好。

    有些业务场景判断逻辑可以用   10<=x<=30这种逻辑来判断,在中间插状态则不需更改代码。为什么使用200而不是0来存草稿/暂存状态,则与个人习惯有关。

    以前枚举存数据库是存tinyint,后来才改成int,一般认为,枚举值不要超过255,使用200作暂存几乎是我认为的业务最大值了。作边界使用

         /// <summary>
            /// 提交审核
            /// </summary>
            [Description("审核中")]
            [Remark("提交审核")]
            Pending = 10,
    
            /// <summary>
            /// 审核不通过
            /// </summary>
            [Description("审核不通过")]
            [Remark("审核不通过")]
            Aborted = 20,
    
            /// <summary>
            /// 审核通过
            /// </summary>
            [Description("审核通过")]
            [Remark("审核通过")]
            Completed = 30,
    
            /// <summary>
            /// 作废/禁用
            /// </summary>
            [Description("已作废")]
            [Remark("作废")]
            Cancel = 60,
    
            /// <summary>
            /// 暂存
            /// </summary>
            [Description("暂存")]
            [Remark("保存")]
            Active = 200

    为什么使用1,2,4,8,16,32等2的幂方?

    暂时只能想到包含的场景,判断时间

    if ((Days.Weekend & Days.Sunday) != 0)//判断是否周末
    {
        Console.WriteLine("1");
    }
    
    if (((Days)32 & Days.WorkDay) != 0)//判断是否工作日
    {
        Console.WriteLine("1");
    }
    
    Console.WriteLine();
    
    [Flags]
    public enum Days
    {
        Monday = 1,  // 1
        Tuesday = 2,  // 2
        Wednesday = 4,  // 4
        Thursday = 8,  // 8
        Friday = 16,  // 16
        Saturday = 32,  // 32
        Sunday = 64,  // 64
        Weekend = Saturday | Sunday,
        WorkDay = Monday | Tuesday | Wednesday | Thursday | Friday
    }
  • 相关阅读:
    bzoj1731 [Usaco2005 dec]Layout 排队布局
    loj10087 Intervals
    差分约束小结
    bzoj1112 [POI2008]砖块Klo
    bzoj3524 [POI2014]Couriers
    poj2752 Seek the Name, Seek the Fame
    1027C Minimum Value Rectangle
    bzoj2212 [POI2011]Tree Rotations
    bzoj3747 [POI2015]Kinoman
    628D Magic Numbers
  • 原文地址:https://www.cnblogs.com/cvol/p/16384616.html
Copyright © 2020-2023  润新知