首页 > 编程语言 >C#枚举

C#枚举

时间:2023-02-09 15:46:19浏览次数:38  
标签:EnumItem C# readonly 枚举 static new public

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 };
        }

    }

 

标签:EnumItem,C#,readonly,枚举,static,new,public
From: https://www.cnblogs.com/jonney-wang/p/17105488.html

相关文章

  • jwt、coreapi自动生成接口文档
    上节回顾#1认证类的执行流程---》源码分析 -请求进来---》路由匹配成功----》执行path('test/',view.BookView.as_view()),--->继承了APIView----》APIView的as_view(......
  • openai chatgpt
    流程想要在微信中接入 ChatGPT 我们需要如下几个步骤成功注册一个 OpenAi 的账号,获取的到一个 APIkey;基于开源项目 wechatbot 运行一个微信机器人程序;用微信......
  • CMU15-445:Project #2 - B+Tree
    Project#2-B+Tree本文是对CMU15-445课程第二个项目的一个粗略总结和翻译。仅供个人(M1kanN)复习使用。Overview第二个项目是实现一个在你的数据库系统中的索引。......
  • CoAP协议
    1.CoAP协议概述1.1CoAP协议的产生物联网的初衷之一就是通过大数据的采集分析去颠覆交通、运输、物流、能源等生产生活的每个方面。一般而言,物联网遇到的最大问题就是环......
  • 使用AES的256位密钥加解密报错java.security.InvalidKeyException: Illegal key size
     使用AES的256位密钥加解密报错java.security.InvalidKeyException:Illegalkeysize。编写微信小程序在获取用户时,需要根据小程序传来的iv,encryptedData,和se......
  • RPC框架的负载均衡机制解析
    1需求流量高峰,突现线上服务可用率降低,排查发现,因为其中有几台机器较旧。当时最早申请的一批容器配置较低,缩容时留下了几台,当流量达到高峰时,这几台容器由于负载太高,扛不住压......
  • C语言填空:单词个数
    #include<stdio.h>//输入一行英文,输出单词个数#include<string.h>main(){charzf[101];inta,b,【1】;【1】;a=【1】;for(b=0;【1】;b++......
  • JAVA缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache
    大家好,又见面了。本文是笔者作为掘金技术社区签约作者的身份输出的缓存专栏系列内容,将会通过系列专题,讲清楚缓存的方方面面。如果感兴趣,欢迎关注以获取后续更新。有......
  • 100 行 shell 写个 Docker
    作者:vivo互联网运维团队-HouDengfeng本文主要介绍使用shell实现一个简易的Docker。一、目的在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup、Namespace、RootF......
  • Go--生成excel表格,读取excel表格数据
    先下载第三方依赖包:goget-ugithub.com/xuri/excelize/v2 代码:packagemainimport("fmt""github.com/xuri/excelize/v2")//生成excel表格func......