文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C# 语言规范 枚举

C# 语言规范 枚举

时间:2011-01-11  来源:zhanqi

  • 枚举类型 (enum type) 是具有一组命名常量的独特的值类型。

  • 下面的示例声明并使用一个名为 Color 的枚举类型,该枚举具有三个常量值 Red、Green 和 Blue。

    • using System;
      enum Color
      {
          Red,
          Green,
          Blue
      }
      
      class Test
      {
          static void PrintColor(Color color)
          {
              switch (color)
              {
                  case Color.Red:
                      Console.WriteLine("Red");
                      break;
                  case Color.Green:
                      Console.WriteLine("Green");
                      break;
                  case Color.Blue:
                      Console.WriteLine("Blue");
                      break;
                  default:
                      Console.WriteLine("Unknown color");
                      break;
              }
          }
      
          static void Main()
          {
              Color c = Color.Red;
              PrintColor(c);
              PrintColor(Color.Blue);
          }
      }
  • 每个枚举类型都有一个相应的整型类型,称为该枚举类型的基础类型 (underlying type)。

  • 没有显式声明基础类型的枚举类型所对应的基础类型是 int。

  • 枚举类型的存储格式和取值范围由其基础类型确定。

  • 一个枚举类型的值域不受它的枚举成员限制。

  • 具体而言,一个枚举的基础类型的任何一个值都可以被强制转换为该枚举类型,成为该枚举类型的一个独特的有效值。

  • 下面的示例声明一个基础类型为 sbyte 且名为 Alignment 的枚举类型。

    • enum Alignment : sbyte
      {
          Left = -1,
          Center = 0,
          Right = 1
      }
  • 如前面的示例所示,枚举成员的声明中包含常量表达式,用于指定该成员的值。

  • 每个枚举成员的常数值必须在该枚举的基础类型的范围之内。

  • 如果枚举成员声明未显式指定一个值,该成员将被赋予值零(如果它是该枚举类型中的第一个值)或前一个枚举成员(按照文本顺序)的值加 1。

  • 可以使用类型强制转换将枚举值转换为整型值,反之亦然。例如

    • int i = (int)Color.Blue;    // int i = 2;
      Color c = (Color)2;         // Color c = Color.Blue;
  • 任何枚举类型的默认值都是转换为该枚举类型的整型值零。

  • 在变量被自动初始化为默认值的情况下,该默认值就是赋予枚举类型的变量的值。

  • 为了便于获得枚举类型的默认值,文本 0 隐式地转换为任何枚举类型。因此,下面的语句是允许的。

    • Color c = 0;
  • 相关阅读 更多 +
    排行榜 更多 +
    泡龙大闯关安卓版

    泡龙大闯关安卓版

    冒险解谜 下载
    割草派对安卓版

    割草派对安卓版

    飞行射击 下载
    堡垒攻防战安卓版

    堡垒攻防战安卓版

    飞行射击 下载