C#中Enum枚举类型的简单使用

2023-05-16

枚举类型的介绍: 

枚举类型是由一组特定常量构成的一组数据结构,是值类型的一种特殊形式,当需要一个由指定常量集合组成的数据类型时,使用枚举类型。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。 


注意点: 

1 对于没有赋值的枚举类型,声明的第一个枚举成员它的默值为零。以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加1得到的。 

2 允许多个枚举成员有相同的值。没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1。 

3 使用时注意类型转换。

可以看出枚举类型的本质都是数字类型。在显示的时候如果需要将枚举的值映射成其相对应的字符串,下边是一个简单的解决方法。

public enum DataTypeId
    {
        [StringValue("Money")]
        Money = 0,
        [StringValue("Number")]
        Number = 1,
        [StringValue("Datetime")]
        Datetime = 2,
        [StringValue("LongText")]
        LongText = 3,
        [StringValue("ShortText")]
        ShortText = 4,
        [StringValue("IdeaType")]
        IdeaType = 5,
        [StringValue("Status")]
        Status = 6
    }

    public class StringValue : System.Attribute
    {
        private string _value;

        public StringValue(string value)
        {
            _value = value;
        }

        public string Value
        {
            get { return _value; }
        }

    }

    public static class StringEnum
    {
        public static string GetStringValue(Enum value)
        {
            string output = null;
            Type type = value.GetType();

            FieldInfo fi = type.GetField(value.ToString());
            StringValue[] attrs =
               fi.GetCustomAttributes(typeof(StringValue),
                                       false) as StringValue[];
            if (attrs.Length > 0)
            {
                output = attrs[0].Value;
            }

            return output;
        }
    }


在使用的时候,只需要调用相应的方法就可以了 StringEnum.GetStringValue(DataTypeID.Money) 输出的字符串即为该MyDataTypeId枚举值对应的字符串


还有一种简单的方法能够得到枚举值对应的字符串,DataTypeID.Money.ToString()返回的就是Money字符串。在Web页面显示的时,DataTypeID.Money显示的是0,而DataTypeID.Money。ToString()返回的是Money这个字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#中Enum枚举类型的简单使用 的相关文章

  • Enum枚举前后端传输展示方案

    1 定义枚举类型 public enum RolesTypeEnum implements Enumerator MANAGER 34 管理员 34 0 BUSINESS 34 招商员工 34 1 PROPERTY 34 物业员工 34 2
  • C++枚举enum使用详解

    目录 一 什么是枚举enum WHAT 二 使用枚举enum的场景 WHEN and WHERE 三 如何使用枚举enum HOW 1 xff09 枚举的定义 2 xff09 枚举的初始化 3 xff09 指定枚举类型 4 声明枚举对象 5
  • C++ enum 和enum class

    文章目录 C 43 43 enum 和 enum class共同点区别 C 43 43 enum 和 enum class 在C 43 43 中 xff0c enum 是一种定义枚举类型的方法 一个枚举是一个整数值的命名集合 可以通过以下方
  • C#中的枚举 Enum和enum的区别

    枚举类型本质上是一个字典 xff0c 它将一组字符串映射到一组整数值 每个枚举常量都具有一个关联的整数值 xff0c 默认情况下 xff0c 第一个枚举常量的值为 0 xff0c 后续枚举常量的值会自动加 1 C 中有两种枚举类型 xff1
  • C#中Enum枚举类型的简单使用

    枚举类型的介绍 xff1a 枚举类型是由一组特定常量构成的一组数据结构 xff0c 是值类型的一种特殊形式 xff0c 当需要一个由指定常量集合组成的数据类型时 xff0c 使用枚举类型 枚举声明可以显式地声明 byte sbyte sho
  • enum 与string的转换

    从enum转换为string可以用ToString 方法 xff0c 如果从string转化为enum xff1a var domInt 61 Convert ToString row 34 DomInt 34 FlightDomInt d
  • java枚举(enum)使用详解

    文章目录 前言一 枚举类型定义二 访问成员三 遍历四 在switch xff08 xff09 中使用枚举五 方法1 内置方法1 1 ordinal 用于返回成员的索引1 2 compareTo 用于比较枚举类型中两个成员的索引值1 3 va
  • C#枚举(Enum)

    枚举是直接在命名空间 类或结构中使用 enum 关键字定义的 所有常量名都可以在大括号内声明 xff0c 并用逗号分隔 下面定义了工作日的枚举 示例 xff1a 定义一个枚举 enum WeekDays Monday Tuesday Wed
  • enum to string c++17 Magic Enum

    Magic Enum header only library provides static reflection for enums to string from string iteration for C 43 43 17 c 43
  • C++遍历输出enum枚举类型

    enum DAY MON TUE WED THU FRI SAT SUN 问题 如果使用如下方式来遍历 xff0c 则编译器会报类型转换失败错误 xff0c 因为enum类型没有 43 43 运算符 xff0c 也不支持 43 运算 for
  • 枚举(enum)

    一 什么是枚举 我们学习过单例模式 xff0c 即一个类只有一个实例 而枚举其实就是多例 xff0c 一个类有多个实例 xff0c 但实例的个数不是无穷的 xff0c 是有限个数的 例如word文档的对齐方式有几种 xff1a 左对齐 居中
  • C 语言使用宏自定义可打印的枚举(enum) 类型

    1 前言 xff1a 说点废话 xff0c 时间紧的请直接跳过 xff0c 看后面的实现 尽管本人很反感 C 语言中的宏定义 xff0c 特别是滥用宏定义经常会让问题变的扑朔迷离 xff0c 但是不得不承认 xff0c 在某些时候 xff0
  • C#语法小知识(三)枚举类型enum

    枚举类型声明一系列常数 xff0c 用于表示这个类型的变量可能会在这些常数里变化 我们在这篇文章里讲一下枚举类型的几个用法 一个简单的枚举类型的定义 xff1a enum TestEnum x y z 而使用也很简单 xff1a TestE
  • C语言枚举类型(C语言enum用法)详解

    在实际编程中 xff0c 有些数据的取值往往是有限的 xff0c 只能是非常少量的整数 xff0c 并且最好为每个值都取一个名字 xff0c 以方便在后续代码中使用 xff0c 比如一个星期只有七天 xff0c 一年只有十二个月 xff0c
  • 深入理解Java枚举类型(enum)

    版权申明 未经博主同意 xff0c 谢绝转载 xff01 xff08 请尊重原创 xff0c 博主保留追究权 xff09 http blog csdn net javazejian article details 71333103 出自 z
  • python枚举之Enum模块详解

    简介 当我们需要定义一些特定有限数量的常量 标签 类型等的时候 最佳方式就是使用枚举 枚举一般用于表示某些特定的有限集合 例如月份 季节 星期等 本篇主要介绍python2 7中的枚举类 即enum中的Enum类 python3 4开始有内
  • Java枚举的使用

    枚举类型可以取代以往常量的定义方式 即将常量封装在类或接口中 此外 枚举类型还提供了安全检查功能 枚举类型本质上还是以类的形式存在 1 使用枚举类型设置常量 以往设置常量 通常将常量放置在接口中 这样在程序中就可以直接使用了 并且该常量不能
  • java枚举的集中管理

    java枚举的集中管理 一 产品中遇到的实际情况 枚举类泛滥 这个 这个 这个 这个 在 JDK 1 5 之前没有枚举类型 那时候一般用接口常量来替代 而使用 Java 枚举类型 enum 可以更贴近地表示这种常量 但是在项目中 就变成这样
  • C语言枚举类型的大小

    主流编译器如 gcc vc MinGW gcc等枚举变量均为4字节 少量编译器会根据枚举个数做优化 如只有3个枚举值时 size可能为1 enum长度不确定会带来可移植性问题 如果第三方库API接口使用enum类型 编译和调用库时一旦有关e
  • 浅谈Java Enum作用与应用场景

    在实际应用中 有的变量只有几种可能取值 如人的性别只有两种可能取值 星期只有七种可能取值 在 Java语言中对这样取值比较特殊的变量可以定义为枚举类型 所谓枚举是指将变量的值一一列举出来 变量只限于列举出来的值的范围内取值 枚举是一个特殊的

随机推荐

  • Java 基础-08:打印三角形

    目录 1 根据手动输入数字 xff0c 打印该数字的直角三角形 xff08 直角在右上方 xff09 2 根据手动输入数字 xff0c 打印该数字的直角三角形 xff08 直角在左下方 xff09 3 根据手动输入数字 xff0c 打印该数
  • VMware虚拟机中Ubuntu忘记密码的解决办法

    在VMware中装的Ubuntu 16 04 xff0c 今天登录时候忘记了密码 xff0c 网上搜了一下 xff0c 结合自己实践 xff0c 最后重新设置了密码 步骤还是比较简单的 xff0c 具体如下 1 重启Ubuntu xff0c
  • QMetaEnum: C++ 中将枚举值自动转换为字符串

    当我们需要在日志中输出枚举类型的信息时 xff0c 如果只记录一个数字 xff0c 查看日志时就需要再去查找这个枚举值的意思 xff0c 不直观 xff0c 不方便 xff0c 我们会希望可以直接输出这个枚举值对应的字符串 比如下面这个枚举
  • 并查集详解与应用

    导引问题 题目描述 xff1a 某省调查城镇交通状况 xff0c 得到现有城镇道路统计表 xff0c 表中列出了每条道路直接连通的城镇 省政府 畅通工程 的目标是使全省任何两个城镇间都可以实现交通 xff08 但不一定有直接的道路相连 xf
  • I2C中的时钟同步与仲裁

    文章目录 时钟同步和仲裁1 时钟同步2 仲裁 时钟拉伸 系列文章 I2C总线 1 数据传输格式与7位地址读写 xff1b I2C总线 2 10位地址读写 xff1b I2C总线 4 高速模式 xff1b I2C总线 5 线与和上拉电阻 I2
  • Asp.net C# 获取本周上周本月上月本年上年第一天最后一天时间大全

    项目中用到了 xff0c 所以就写全了 xff0c 供参考使用 DateTime dt 61 DateTime Now int weeknow 61 Convert ToInt32 DateTime Now DayOfWeek int da
  • Maven常见的编译报错

    一 Maven编译报错AssertionError Maven 编译SpringBoot程序出现错误 xff1a 2022 09 21 06 38 52 UTC Exception in thread 34 main 34 java lan
  • 关于xwindow的一些事

    嗯 第一次写博客 xff0c 只是希望能把自己做项目的经历记录下来 之前经历的很多坑爹问题因为没有及时记录 xff0c 现在再碰到还是得翻阅网络的海量资源去寻找解决方法 xff0c 浪费时间浪费精力 xff0c 做了很久的东西放过老一想又觉
  • VMware安装CentOS 7.8详细图文教程(含网络配置)

    1 镜像下载 阿里镜像站 xff1a http mirrors aliyun com清华镜像站 xff1a https mirrors tuna tsinghua edu cn华为镜像站 xff1a http mirrors huaweic
  • golang 调用 python

    Golang中调用Python3 知乎 2 10 Go实现Python模块 Go语言高级编程 golang和python互相调用 dhcn 博客园 Golang调用Python Go语言中文网 Golang中文社区 golang调用pyth
  • E: 仓库 “http://mirrors.aliyun.com/ubuntu bionic-updates InRelease” 的签名不再生效。

    仓库 http mirrors aliyun com ubuntu bionic InRelease 的签名不再生效 E 无法下载 http mirrors aliyun com ubuntu dists bionic InRelease
  • iOS谓词做出自定义搜索效果

    void viewDidLoad super viewDidLoad 第一个数组为总库存 xff0c 第二个数组用来存储搜索后的结果 array 61 NSMutableArray array arrayb 61 NSMutableArra
  • Openstack云环境的登录和基本使用

    实验目的 xff1a xff08 1 xff09 掌握在Linux虚拟机内搭建Openstack的方法 xff08 2 xff09 在浏览器中可以运行Openstack客户端 实验内容及要求 xff1a xff08 1 xff09 进行Op
  • CentOS升级CMake

    今天在编译 Opencv 时 xff0c 在 cmake 阶段失败 xff0c 报类似下面的错误信息 xff1a CMake 3 5 2 or higher is required You are running version 3 4 0
  • 字符串排序

    题目描述 编写一个程序 xff0c 将输入字符串中的字符按如下规则排序 规则 1 xff1a 英文字母从 A 到 Z 排列 xff0c 不区分大小写 如 xff0c 输入 xff1a Type 输出 xff1a epTy 规则 2 xff1
  • postgresql 导入数据库表id自增报错问题处理

    情境再现 xff1a 使用postgresql xff0c 我们需要迁移表操作时 xff0c 转储sql语句再重新导入就会报错 xff0c 出现 xff1a ERROR relation 34 config id seq 34 does n
  • settings.xml配置及如果创建maven工程依赖文件报红 解决方法

    重设maven conf settings xml文件 span class token operator lt span span class token operator span xml version span class toke
  • mysql之my.cnf详解

    client port 61 3306 客户端端口号为3306 socket 61 tmp mysql sock 修改client配置 xff0c 不需要重启MySQL Server端 default character set 61 ut
  • VIM配置文件vimrc

    VIM配置文件vimrc Ubuntu 默认情况下只安装tiny vim xff0c 只要运行 sudo apt get install vim 安装完整的vim就好了 vimrc 下载 34 34 34 34 34 34 34 34 34
  • C#中Enum枚举类型的简单使用

    枚举类型的介绍 xff1a 枚举类型是由一组特定常量构成的一组数据结构 xff0c 是值类型的一种特殊形式 xff0c 当需要一个由指定常量集合组成的数据类型时 xff0c 使用枚举类型 枚举声明可以显式地声明 byte sbyte sho