📜  C#|枚举(或枚举)(1)

📅  最后修改于: 2023-12-03 15:30:18.012000             🧑  作者: Mango

C# | 枚举(或枚举)

介绍

在C#中,枚举(Enum)是一种用于定义命名常量集合的类型。它可以将一组常量赋予一个枚举类型,并且在程序中可以根据名称使用这些常量。

枚举类型可以帮助我们在程序中使用更加易读和易维护的代码。

语法

在C#中,声明枚举时使用enum关键字,以及枚举名称和值。下面是一个简单的枚举示例:

enum DaysOfWeek {
  Monday,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

在上面的示例中,我们定义了一个叫做DaysOfWeek的枚举类型,并指定了七个不同的名称。

接着,我们可以在程序中使用这些名称:

DaysOfWeek today = DaysOfWeek.Monday;

在这个示例中,我们将枚举的值赋给了一个变量。这个变量的类型是DaysOfWeek,可以通过名称来访问每个枚举值。

枚举值

在C#中,枚举值通常是一个大写字母的标识符。如果没有给出值,则第一个值的默认值为0,下一个值的默认值会比前一个值增加1。

如果需要自定义枚举值,则可以在枚举名称之后加上等号和值。下面是一个示例:

enum DaysOfWeek {
  Monday = 1,
  Tuesday,
  Wednesday,
  Thursday,
  Friday,
  Saturday,
  Sunday
}

在上面的示例中,我们将Monday的值定义为1,下一个值的值依次自增。这样,我们就可以按照我们的需求来定义每个枚举值的值,而不需要按照默认规则来定义。

使用枚举

枚举类型在C#中十分常用,可以用于多种场合。下面是一些常见的使用场景:

1. Switch语句

我们可以在switch语句中使用枚举类型。下面是一个示例:

switch(today) {
  case DaysOfWeek.Monday:
    Console.WriteLine("今天是星期一");
    break;
  case DaysOfWeek.Tuesday:
    Console.WriteLine("今天是星期二");
    break;
  // 其他枚举值的处理...
}

在上面的示例中,我们根据枚举值使用了switch语句。

2. 枚举迭代

我们可以使用foreach语句来迭代枚举类型。下面是一个示例:

foreach(DaysOfWeek day in Enum.GetValues(typeof(DaysOfWeek))) {
  Console.WriteLine(day);
}

在上面的示例中,我们使用Enum.GetValues方法获取DaysOfWeek枚举的所有值,然后使用foreach语句迭代每个枚举值。

3. 枚举作为方法参数

我们可以将枚举类型作为方法的参数,这样可以让我们的代码更加简洁和易读。下面是一个示例:

void ShowDayOfWeek(DaysOfWeek day) {
  Console.WriteLine("今天是" + day);
}

在上面的示例中,我们定义了一个ShowDayOfWeek方法,它的参数类型是DaysOfWeek。这样,我们就可以直接使用枚举值作为参数来调用该方法。

总结

枚举类型是一种定义命名常量集合的类型,在C#中被广泛应用。它可以帮助我们编写更加易读和易维护的代码。