欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

深入解析c#中枚举类型的定义与使用

程序员文章站 2024-02-17 09:37:04
介绍枚举是一个指定的常数,其基础类型可以是除 char 外的任何整型。如果没有显式声明基础类型,则使用 int32。编程语言通常提供语法来声明由一组已命名的常数和它们的值组...

介绍
枚举是一个指定的常数,其基础类型可以是除 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");