C# 枚举使用整理_C# enum详解

这篇具有很好参考价值的文章主要介绍了C# 枚举使用整理_C# enum详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、枚举的定义

枚举类型 是由基础整型数值类型的一组命名常量定义的值类型

System.Enum 类型是所有枚举类型的抽象基类。 它提供多种方法来获取有关枚举类型及其值的信息。 有关更多信息和示例,请参阅 System.Enum API 参考页。

可在基类约束中使用 System.Enum(称为枚举约束),以指定类型参数为枚举类型。 所有枚举类型也都满足 struct 约束,此约束用于指定类型参数为不可为 null 的值类型

使用枚举的优点:

1.增加代码的可读性,使代码更加清晰;它允许使用描述性的名称表示整数值。

2.标准化业务归类、业务类型;有助于确保给变量指定合法的、期望的值。

使用场景:

数据分类,操作类型,订单状态/流程状态

二、枚举的使用

默认情况下,枚举成员的关联常数值为类型 int;

它们从零开始,并按定义文本顺序递增 1。

可以显式指定任何其他整数数值类型作为枚举类型的基础类型。

还可以显式指定关联的常数值。关键词 enum

enum Season
{
    Spring,//标识0
    Summer,//标识1
    Autumn,//标识2
    Winter //标识3
}

指定数字

enum ErrorCode : ushort
{
    None = 0,
    Unknown = 1,
    ConnectionLost = 100,
    OutlierReading = 200
}

三、枚举和数字的转换

数据类型转换:

//将枚举,转换成数字
int num = Season.春天.GetHashCode();
Console.WriteLine(num);

//将数字,转换成枚举
Season seson = (Season)System.Enum.ToObject(typeof(Season), 1);

常用操作封装:

        /// <summary>
        /// 获取指定类型的int值得枚举对象
        /// </summary>
        /// <param name="value">值</param>
        /// <param name="t">类型</param>
        /// <returns></returns>
        public static T ToObject<T>(int value)
        {
            Type t = typeof(T);
            return (T)System.Enum.ToObject(t, value);
        }
        /// <summary>
        /// 指定枚举的string值,获取枚举对象
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="value"></param>
        /// <returns></returns>
        public static T Parse<T>(string value)
        {
            return (T)System.Enum.Parse(typeof(T), value);
        }
        /// <summary>
        /// 获取指定类型的枚举列表
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static Dictionary<int, string> GetList<T>()
        {
            Type t = typeof(T);
            Dictionary<int, string> dic = new Dictionary<int, string>();
            foreach (var item in System.Enum.GetValues(t))
            {
                dic.Add((int)item, System.Enum.GetName(t, item));
            }
            return dic;
        }
        // 获取name
        public static string GetName<T>(int id)
        {
            Type t = typeof(T);
            return System.Enum.ToObject(t, id).ToString();
        }
        public static List<object> GetNameList<T>()
        {
            Type t = typeof(T);
            List<object> res = new List<object>();
            foreach (var item in System.Enum.GetValues(t))
            {
                res.Add(new { id = (int)item, name = System.Enum.GetName(t, item) });
            }
            return res;
        }

更多:文章来源地址https://www.toymoban.com/news/detail-569074.html

C# 去除字符串中的空格方案整理

C#数组分组_C#数据分组_C# Linq分组使用整理

C#时间使用整理,DateTime 使用整理

到了这里,关于C# 枚举使用整理_C# enum详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言枚举类型enum(全面详细直观)

    维基百科的理解: 枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。 定义:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内。 我的理解: 枚举类型就是将一些比较固定的值一一列举出来 ,比如一年有十二个

    2024年02月06日
    浏览(78)
  • Java中枚举类enum的values()方法的详解

    简介: 枚举中的一个特殊方法,values(), 在Enum 的 API 文档中也找不到这个方法,当点击values()时,也会跳到本类上。 此方法可以理解为:将枚举类转变为一个枚举类型的数组,因为枚举中没有下标,我们没有办法通过下标来快速找到需要的枚举类,这时候,转变为数组之后,

    2024年02月14日
    浏览(29)
  • enum枚举类型使用

    static Direction[] values():返回本类所有枚举常量; static Direction valueOf(String name):通过枚举常量的名字返回Direction常量,注意,这个方法与Enum类中的valueOf()方法的参数个数不同

    2024年02月13日
    浏览(41)
  • TS—枚举Enum用法

    枚举用于定义数据集合,使用枚举可以定义一些带名字的常量,有普通枚举、字符串枚举和常量枚举等类型。 普通枚举:初始值默认为 0,其余的属性按顺序依次递增。 也可手动设置初始值(其余的属性依旧按顺序递增): 字符串枚举: 常量枚举:使用 const 修饰的枚举

    2024年02月16日
    浏览(38)
  • TypeScript【enum 枚举】

    导语 在 TypeScript 中,新增了很多具有特性的一些数据类型处理方法, enum 【枚举】 就是其中,很具有代表性的一种,所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】 。 枚举的 概念 : 枚举(Enum)类型 用于取值被限定在一定范围内的场景 ,比如一周只能有七天

    2024年02月14日
    浏览(39)
  • C++枚举解读(enum)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 对于开发C++来说,枚举是一个几乎必然用到的功能。当然今天要讲的枚举肯定不是平常漫不经心的使用,而是从里到外地深扒它,逐渐揭开它神秘地面纱,发现一些未曾注意到地东西。 枚举(enumeration)类

    2024年02月13日
    浏览(44)
  • ffmpeg enum AVChannel枚举解析

    AVChannel枚举是在2022-12-20的提交中添加的,对应的版本号是5.1. 这个提交的描述是\\\"avutil/channel_layout: add AVChannel enum and related functions\\\"。 AVChannel 是一个枚举类型,用于表示音频数据的各个声道。在音频数据中,一个“声道”是一个独立的音频信号,它可以被独立处理和播放。例如

    2024年02月11日
    浏览(31)
  • 【golang】每日chatGPT:golang中实现ENUM枚举类型 | go enum

    在golang极简的哲学思想中,没有内置枚举类型 这里我们通过map+iota去实现一个枚举类型 枚举值如下: key value 1 发电类 2 储能类 13 负荷类 打印如下: 发电类 储能类 负荷类 ========= 储能类

    2024年02月15日
    浏览(46)
  • 【C程序设计】C enum(枚举)

    枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。 定义一个枚举类型,需要使用 enum ,后面跟着枚举类型的名称,以及用大括

    2024年01月23日
    浏览(35)
  • 虚幻C++中的细节之枚举类型(enum)

    虚幻引擎中的代码部分实现了一套反射机制,为c++代码带了更多方便的特性。本篇文章将会着眼于其中更加细节的部分——虚幻中的enum。 在虚幻风格的代码中,我们经常能使用这样的方法来创建枚举类型: 似乎有一些c++的影子,但又好像有一些不一样的部分。它有基本c++的

    2024年02月02日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包