C#枚举

C#枚举比较死板,没有Java里自由,有些需求要特别对待。

    public struct EnumItem
    {
        public int Value;
        public string Desc;

        public EnumItem(int value, string desc)
        {
            Value = value;
            Desc = desc;
        }
        public static EnumItem FromInt(int val, List<EnumItem> enums)
        {
            foreach (var item in enums)
            {
                if (item.Value == val)
                {
                    return item;
                }
            }
            throw new NotSupportedException("枚举值不在范围内");
        }
    }

    public struct OrderStatus
    {
        public readonly static EnumItem WaitPay = new EnumItem(1, "待付款");
        public readonly static EnumItem WaitShip = new EnumItem(2, "待发货");
        public readonly static EnumItem WaitReceive = new EnumItem(3, "待收货");
        public readonly static EnumItem Received = new EnumItem(4, "已收货");

        public static List<EnumItem> GetItems()
        {
            return new List<EnumItem>() { WaitPay, WaitShip, WaitReceive, Received };
        }

    }

 

posted on 2023-02-09 15:34  jonney_wang  阅读(24)  评论(0编辑  收藏  举报

导航