深入解析c#中枚举类型的定义与使用
介绍
枚举是一个指定的常数,其基础类型可以是除 char 外的任何整型。
如果没有显式声明基础类型,则使用 int32。
编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举。
定义
默认基数从o开始,也可指定数值。
enum days { saturday=1, sunday, monday, tuesday, wednesday, thursday, friday };
enum colors { red = 1, green = 2, blue = 4, yellow = 8 };
使用
colors mycolors = colors.red;
string strcolor=mycolors.tostring();
int intcolor=(int)mycolors ;
位或
colors mycolors = colors.red | colors.blue | colors.yellow;
位与
colors mycolors = colors.red & colors.blue & colors.yellow;
遍历
foreach (string s in enum.getnames(typeof(days)))
response.write(s + "--" + enum.parse(typeof(days), s).tostring());
转换
colors mc=colors enum.parse(typeof(colors ), "red");
if (system.enum.isdefined(typeof(days), "monday"))
days ds= (days)enum.parse(typeof(days), "monday");
实例二:
public enum noticetype
{
notice = 'a',
labrule = 'h',
hotinformation = 'n',
column = 'c',
all = '1',
null = '0'
}
//新建枚举类型
noticetype noticetype1 = noticetype.column;
//把枚举类型转换为string d="column"
string d = noticetype1.tostring();
//取得枚举类型的基数 dd='c'
char dd = (char)noticetype1;
//通过基数取得对应的枚举类型 noticetype2 = noticetype.notice
//(noticetype)'a'; 两种方式都可以
noticetype noticetype2 = (noticetype)char.parse("a");
//通过名称取得枚举类型 noticetype3 = noticetype.notice
noticetype noticetype3 = (noticetype)enum.parse(typeof(noticetype), "notice");