猿教程 Logo

C# 枚举

在C#中,枚举是值类型数据类型。 枚举用于声明命名整数常量的列表。 它可以直接在命名空间,类或结构中使用enum关键字定义。 枚举用于为每个常量赋予一个名称,以便可以使用其名称来引用常量整数。

枚举实例:

enum WeekDays
{
    Monday = 0,
    Tuesday =1,
    Wednesday = 2,
    Thursday = 3,
    Friday = 4,
    Saturday =5,
    Sunday = 6
}
Console.WriteLine(WeekDays.Friday);
Console.WriteLine((int)WeekDays.Friday);

运行结果:

Friday
4

默认情况下,枚举的第一个成员具有值0,并且每个连续枚举成员的值增加1.例如,在以下枚举中,星期一为0,星期二为1,星期三为2等。

enum WeekDays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
Console.WriteLine((int)WeekDays.Monday);
Console.WriteLine((int)WeekDays.Friday);

运行结果:

0
4

需要显式强制转换从枚举类型到整数类型。 例如,要从枚举中获取int值:

int dayNum = (int)WeekDays.Friday;
Console.WriteLine(dayNum);

输出结果:

4

第一个枚举成员的值的更改将自动向其他成员顺序分配增量值。 例如,将星期一的值更改为10将分配11到星期二,12到星期三,等等:

enum WeekDays
{
    Monday = 10,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
Console.WriteLine((int)WeekDays.Monday);
Console.WriteLine((int)WeekDays.Friday);

运行结果:

10
14

枚举可以包括数值数据类型的命名常数,例如 字节,sbyte,short,ushort,int,uint,long或ulong。

枚举主要用于通过给相关的常量一个有意义的名称使代码更可读。 它还提高了可维护性。


枚举的方法

枚举是一个抽象类,包括使用枚举的静态辅助方法。

枚举方法描述
Format将枚举类型的指定值转换为指定的字符串格式。
GetName返回指定枚举的指定值的常量的名称。
GetNames返回指定枚举的所有常量的字符串名称的数组。
GetValues返回指定枚举的所有常量的值的数组。
object Parse(type,string)将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效枚举对象。
bool TryParse(string,out TEnum)将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。 返回值指示转换是否成功。

枚举方法实例:


enum WeekDays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
Console.WriteLine(Enum.GetName(typeof(WeekDays), 4));
Console.WriteLine("WeekDays constant names:");
foreach (string str in Enum.GetNames(typeof(WeekDays)))
            Console.WriteLine(str);
Console.WriteLine("Enum.TryParse():");
WeekDays wdEnum;
Enum.TryParse<WeekDays>("1", out wdEnum);
Console.WriteLine(wdEnum);

运行结果:

Friday
WeekDays constant names:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Enum.TryParse():
Tuesday

访问MSDN了解更多关于枚举方法。

要点
  1. 枚举是一组命名常量。

  2. 枚举常量的值从0开始。枚举可以具有任何有效数字类型的值。

  3. C#中不支持String枚举。

  4. 使用枚举使代码更可读和可管理。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/CSharp/Csharp-enum.html