枚举

收藏172

阅读2862

更新时间2025-08-11

C# 枚举

枚举(enum)是一种特殊的“类”,表示一组常量(不可更改/只读变量)。

要创建一个 enum,请使用 enum 关键字(而不是 classinterface),并使用逗号分隔枚举项:

实例

enum Level 
{
  Low,
  Medium,
  High
}

您可以使用点语法来访问枚举项:

Level myVar = Level.Medium;
Console.WriteLine(myVar);

提示:Enum 是 “enumerations” 的缩写,意为“逐一列举”。

类内的枚举

您也可以在类内部定义枚举:

实例

class Program
{
  enum Level
  {
    Low,
    Medium,
    High
  }
  static void Main(string[] args)
  {
    Level myVar = Level.Medium;
    Console.WriteLine(myVar);
  }
}

输出将是:

Medium

枚举值

默认情况下,枚举的第一项值为 0。第二项值为 1,依此类推。

要从项目中获取整数值,您必须显式地将项目转换为 int

实例

enum Months
{
  January,    // 0
  February,   // 1
  March,      // 2
  April,      // 3
  May,        // 4
  June,       // 5
  July        // 6
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

输出将是:

3

您也可以为自己的枚举值赋值,后续的项将相应地更新它们的数字:

实例

enum Months
{
  January,    // 0
  February,   // 1
  March=6,    // 6
  April,      // 7
  May,        // 8
  June,       // 9
  July        // 10
}

static void Main(string[] args)
{
  int myNum = (int) Months.April;
  Console.WriteLine(myNum);
}

输出将是:

7

Switch 语句中的枚举

枚举经常用在 switch 语句中来检查相应的值:

实例

enum Level 
{
  Low,
  Medium,
  High
}

static void Main(string[] args) 
{
  Level myVar = Level.Medium;
  switch(myVar) 
  {
    case Level.Low:
      Console.WriteLine("Low level");
      break;
    case Level.Medium:
       Console.WriteLine("Medium level");
      break;
    case Level.High:
      Console.WriteLine("High level");
      break;
  }
}

输出将是:

Medium level

为什么以及何时使用枚举?

当您有一组不会更改的值时,例如月份的天数、星期几、颜色、一副扑克牌等,就应该使用枚举。

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号