加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C# enum 枚举类别

发布时间:2023-06-03 11:14:20 所属栏目:语言 来源:
导读:枚举类型(也可以称为“枚举器”)由一组具有独立标识符(名称)的整数类型常量构成,在 C# 中枚举类型不仅可以在类或结构体的内部声明,也可以在类或结构体的外部声明,默认情况下枚举类型中成员的默认值

枚举类型(也可以称为“枚举器”)由一组具有独立标识符(名称)的整数类型常量构成,在 C# 中枚举类型不仅可以在类或结构体的内部声明,也可以在类或结构体的外部声明,默认情况下枚举类型中成员的默认值是从 0 开始的,然后逐一递增。

在 C# 中可以使用 enum 关键字来声明枚举类型,语法格式如下所示:

enum enum_name{

   enumeration list;

}

其中,enum_name 为枚举类型变量的名称;enumeration list 为枚举类型中的成员列表,其中包含若干使用逗号分隔的标识符,每个标识符都代表了一个整数值。

在使用枚举类型时有以下几点需要注意:

枚举类型中不能定义方法;

枚举类型具有固定的常量集;

枚举类型可提高类型的安全性;

枚举类型可以遍历。

下面通过示例来演示一下枚举变量的使用:

using System;

namespace c.biancheng.net

{

class Demo

{

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };

static void Main(string[] args)

{

Console.WriteLine("Sun = {0}", (int)Day.Sun);

Console.WriteLine("Mon = {0}", (int)Day.Mon);

Console.WriteLine("Tue = {0}", (int)Day.Tue);

Console.WriteLine("Wed = {0}", (int)Day.Wed);

Console.WriteLine("Thu = {0}", (int)Day.Thu);

Console.WriteLine("Fri = {0}", (int)Day.Fri);

Console.WriteLine("Sat = {0}", (int)Day.Sat);

Console.ReadKey();

}

}

}

运行结果如下:

Sun = 0

Mon = 1

Tue = 2

Wed = 3

Thu = 4

Fri = 5

Sat = 6

默认情况下,枚举类型中的每个成员都为 int 类型,它们的值从零开始,并按定义顺序依次递增。但是我们也可以显式的为每个枚举类型的成员赋值,如下所示:

enum ErrorCode

{

   None,

   Unknown,

   ConnectionLost = 100,

   OutlierReading = 200

}

【示例】使用 GetValues() 遍历枚举类型中的所有成员:

using System;

namespace c.biancheng.net

{

class Demo

{

enum Season {

winter = 10,

spring,

summer = 15,

autumn

};

static void Main(string[] args)

{

foreach(Season i in Enum.GetValues(typeof(Season))){

Console.WriteLine("{0} = {1}", i, (int)i);

}

Console.ReadKey();

}

}

}

运行结果如下:

winter = 10

spring = 11

summer = 15

autumn = 16

【示例】使用 GetNames() 遍历枚举类型中的所有成员:

using System;

namespace c.biancheng.net

{

class Demo

{

enum Season {

winter = 10,

spring,

summer = 15,

autumn

};

static void Main(string[] args)

{

foreach(String s in Enum.GetNames(typeof(Season))){

Console.WriteLine(s);

}

Console.ReadKey();

}

}

}

运行结果如下:

winter

spring

summer

autumn

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!