C# 枚举(Enum)

C# 枚举(Enum)

枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。

C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承

声明 enum 变量

声明枚举的一般语法:

enum <enum_name>
{ 
    enumeration list 
};

其中,

  • enum_name 指定枚举的类型名称。
  • enumeration list 是一个用逗号分隔的标识符列表。

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

实例

下面的实例演示了枚举变量的用法:

using System;

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

    static void Main()
    {
        int x = (int)Day.Sun;
        int y = (int)Day.Fri;
        Console.WriteLine("Sun = {0}", x);
        Console.WriteLine("Fri = {0}", y);
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

Sun = 0
Fri = 5

笔记

  • 枚举是一种类型
  • 适用于某些取值范围有限的数据,例如:我只想要春夏秋冬这四个字符的取值范围,如果用string的话就无法固定取值范围
  • 枚举语法:[访问权限修饰符] enum 枚举名
  • 枚举访问权限修饰符和类是一样的,默认访问权限和类一样都是internal
  • 枚举名遵循大驼峰命名法
  • 枚举的每一个值都是一个整型,默认都是从 0 开始

然后还有两点:

  • 1、枚举中的元素的值可以设置为相同,但不推荐。
  • 2、枚举元素默认的值的类型是 int 型,可以修改为其他整型 byte、sbyte、short、ushort、int、uint、long 和 ulong。
public enum Season_1
{
    spring_1 = 3,  //3
    sunmmer_1,     //4
    autumn_1 = 3,  //3
    winter_1       //4
}
public enum Season_2 : long  //将枚举默认类型int改为long
{
    spring_2,  //0
    sunmmer_2, //1
    autumn_2,  //2
    winter_2   //3
}
class Program
{
    static void Main(string[] args)
    {
      Season_1 s2 = Season_1.autumn_1;
      Console.WriteLine(s2);  //显示spring_1,而不是autumn_1的原因是spring_1和autumn_1都是3,从前往后                                  //第一个3是spring_1,所以就输出spring_1
      Season_1 s3 = Season_1.spring_1;
        Console.WriteLine(s2 == s3);  //结果是true,表明spring_1和autumn_1是一样的
    }
 }

感觉有点类似Python的字典了

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。

默认情况下,第一个枚举符号的值是 0。第 n 个符号值与第 n-1 个有关。

posted @ 2021-10-24 17:03  槑孒  阅读(501)  评论(0编辑  收藏  举报