获取枚举类型的名字字符串的方法
来源:互联网 发布:李迪华 知乎 编辑:程序博客网 时间:2024/06/05 00:41
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。对应的装箱操作既可以为隐式的也可以是显式的。
- 获取枚举类型的名字字符串的方法
- c#枚举类型的内容全部获取和字符串转换为枚举类型的方法
- C++ 用于获取枚举值的名字
- C#中字符串转换成枚举类型的方法
- 枚举类型方法之获取常量的索引位置
- 枚举类型的构造方法
- C# 枚举的获取方法
- delphi 枚举类型与字符串的转换
- C++:C++背景、名字空间、结构联合枚举、字符串类型
- 获取枚举类型Enum的注释内容。
- 获取枚举类型的描述description
- 获取一个SqlParameter参数中的SqlDbType枚举的类型,通过字符串名称
- 类型名字的获取及其应用(g++ only)
- 获取app的名字
- 获取类的名字
- 获取 image 的名字
- 为枚举类型创建字符串类型的标记值
- delphi中遍历枚举类型的方法
- oracle 知识整理
- 用形象的方法来处理约瑟夫环问题
- word2007每段文字前有小黑点的解决办法
- File.pathSeparator
- (精)设计模式-设计原则
- 获取枚举类型的名字字符串的方法
- MySQL性能优化的最佳20条经验
- 线索二叉树---摘录
- Samsung MDM partners
- 在页面显示,给表格加序列号
- 软件项目生命周期与如何推动重构
- play框架,即学即用
- sharepoint 2013 列表和库标签 元数据导航配置(1)
- 40个让你网站更加友好