C++版

总之就是查表法了。

代码例子如下。

#include <stdio.h>
typedef enum {
SUN,
MON,
TUE,
WED,
THU,
FRI,
SAT,
} DAY;
const char * const day[] = {
"SUN",
"MON",
"TUE",
"WED",
"THU",
"FRI",
"SAT",
};
int main()
{
DAY today = WED;
printf("Today is %s.\n", day[today]);
return 0;
}

C#版

.NET是比C++好用呀。代码说明一切。

public enum TimeOfDay
{
Morning = 0,
Afternoon = 1,
Evening
}
public void EnumTest()
{
TimeOfDay time = TimeOfDay.Afternoon;
//将枚举字符串打印,即枚举类型转换(解析)成字符串类型
Console.WriteLine(time.ToString());//输出:Afternoon
//获取枚举字符串的值,即将一个表示枚举成员的字符串,解析为对应枚举类型
TimeOfDay time2 = (TimeOfDay)Enum.Parse(typeof(TimeOfDay), "Evening", true);
//枚举类型可以强制转换成整型,整型也可以强制转换成枚举型
Console.WriteLine((int)time2);//输出:2
// 遍历所有的枚举元素            ;
foreach (string s in Enum.GetNames(typeof(TimeOfDay)))
{
Console.WriteLine(s);
}
//输出: Morning
//       Afternoon
//       Evening
}

关于C#枚举类型的一点补充:

枚举类型都是值类型

System.Enum是一个抽象类(abstract class),所有枚举类型都直接继承自它,当然也同时继承了它的所有成员。

所有的值类型都是System.ValueType的后代,枚举类型也不例外,枚举类型直接继承自System.Enum,而System.Enum却又直接继承自System.ValueType的,所以,枚举类型也是 System.ValueType的后代。 
值类型都是System.ValueType的后代,但System.ValueType的后代不全是值类型,System.Enum就是唯一的特例!

在System.ValueType的所有后代中,除了System.Enum之外其它都是值类型。

事实上,我们可以在.NET的源代码中找到System.Enum的声明:

public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible

  • 1. 所有枚举类型(enum type)都是值类型。
  • 2. System.Enum和System.ValueType本身是引用类型。
  • 3. 枚举类型(enum type)都是隐式的直接继承自System.Enum,并且这种继承关系只能由编译器自动展开。但System.Enum本身不是枚举类型(enum type)。
  • 4. System.Enum是一个特例,它直接继承自System.ValueType,但本身却是一个引用类型

5. 枚举类型可以被装箱成System.Enum、System.ValueType、System.Object或者System.IConvertible、System.IFormattable、System.IComparable。

注意:在.NET 1.1上,枚举类型只能被装箱到System.Enum、System.ValueType、System.Object;而在.NET 2.0上,枚举类型还能被装箱到System.Enum所实现的三个接口:System.IConvertible、 System.IComparable、System.IFormattable。对应的装箱操作既可以为隐式的也可以是显式的。

获取枚举类型的名字字符串的方法相关推荐

  1. php 怎么查看文件类型信息,php获取文件类型和文件信息的方法

    php获取文件类型和文件信息的方法 发布于 2015-10-07 05:26:52 | 81 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  2. 获取枚举类型的 中文 描述 和值

    C# 通过Attitude特性来实现,相对方便些 namespace Extensions {/// <summary>/// 定义枚举扩展类/// </summary>pub ...

  3. .net工具类 获取枚举类型的描述

    一般情况我们会用枚举类型来存储一些状态信息,而这些信息有时候需要在前端展示,所以需要展示中文注释描述. 为了方便获取这些信息,就封装了一个枚举扩展类. /// <summary>/// 枚 ...

  4. C#中关于“集合已被修改,可能无法操作枚举类型”报错的解决方法

    出错的代码如下 foreach (var item in 你定义的集合)   {                 这里是你写的对集合的操作语句:        } 这个时候项目运行起来的过后,就会提示 ...

  5. java获取枚举的值_JAVA枚举Enum,通过枚举值获取枚举类型

    枚举类: import java.util.Optional; public enum PurchaseDemandEnum { YJJSL(1,"研究技术类"), XTGCL(2 ...

  6. C# 获取枚举类型描述Description值

    代码 /// <summary>/// 获取当前枚举描述/// </summary>/// <param name="enumValue">&l ...

  7. iOS 14获取不到WiFi名字的解决方法

    每次iOS系统版本升级,都会带来一些变化,就像获取手机当前的WiFi名字,iOS13需要用户允许获取位置信息才能获得WiFi名字 用旧的CNCopyCurrentNetworkInfo不知道为什么没拿 ...

  8. Java笔记-通过反射获取枚举类型中所有数据

    程序运行截图如下: 代码如下: Em.java package cn.it1995;public enum Em {ONE(1, "第一个枚举"),TWO(2, "第二个 ...

  9. Java并发:五种线程安全类型、线程安全的实现、枚举类型

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/u014454538/ article/details/98515807 1. Java中的线程安全 Java线程安全:狭义地认 ...

最新文章

  1. JVM class加载机制的总结 收藏
  2. Makefile:自动化变量 $@,$^,$<,$?
  3. java小数点的代码_java小数位的例子
  4. 基于VTK User Guide和VTK Textbook学习
  5. Java多线程编程-(4)-线程间通信机制的介绍与使用
  6. BIOS基础知识(上)
  7. vc access mysql_VC中访问Access数据库的方法
  8. 「腾讯地图」小程序插件
  9. css+javascript模拟OneNote2007Tab标签
  10. java 日语文档翻译_日语文档怎么翻译?一分钟教会你日语翻译
  11. SQLite数据库版本升级
  12. Vuforia Area及新功能讲解
  13. 广告文案:用文案讲好故事的广告是如何做?
  14. java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation问题解决
  15. shiro-基本原理和逻辑配置
  16. Adobe After Effects CC 2020 中英文语言切换方法
  17. vue使用参数直接取到data数据
  18. python计算圆柱体的表面积和体积_java设计:问题是编写程序计算圆柱体的体积和表面积...
  19. 2021年中国综艺赞助情况回顾及未来发展趋势:品牌更乐于与成熟的综N代合作,未来合作方式更多元化[图]
  20. imx6ull项目也是封装成脚本安装 Poky 交叉编译工具链类似ATK-STM32MP157交叉编译

热门文章

  1. 软路由OpenWrt dnsmasq解析内网上游DNS
  2. [Java类加载器]Java中classLoader浅析.
  3. Error C2280
  4. CNN卷积神经网络(数字分类)
  5. unity需要什么配置_《英雄联盟》LoL需要什么电脑配置?英雄联盟电脑配置要求。...
  6. 大数据公司Palantir融得7亿美元 曾追踪拉登
  7. poj之旅——3050
  8. 《c 语言程序设计》宝钏,《双别窑》:妻子苦守寒窑18年,却只换来了18天的团聚...
  9. 4g没信号就无服务器,福特领界没有4G网络信号故障检修
  10. 视频剪辑,教你添加滚动字幕