zoukankan      html  css  js  c++  java
  • C#枚举


    枚举类型是一种独特的值类型,用于声明一组命名的常量
    enum Color
    {
     Red,
     Green,
     Blue
    }
    每个枚举类型都有相应的整型,可以显示的声明为byte,short,long
    默认为int
    enum Color: long
    {
     Red,
     Greeen,
     blue
    }
    多个枚举成员可以共享相同的关联值。示例:

    enum Color

    {

      Red,

      Green,

      Blue,

      Max = Blue

    }

    显示了一个枚举,其中的两个枚举成员(B1ue和Max)具有相同的关联值。

    可以隐式地或显式地对枚举成员的关联值进行赋值。如果枚举成员的声明中具有常量表达式初始值设定项,

    则该常量表达式的值(隐式地转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明中没

    有初始值设定项,则将按下面的规则隐式地设置它的关联值:

    — 如果枚举成员是枚举类型中声明的第一个枚举成员,则它的关联值为零。

    — 否则,枚举成员的关联值将通过将前一个枚举成员(按照文本顺序)的关联值加1得到。这样增加后的值

    必须在基础类型可表示的值的范围之内;否则,将发生编译时错误。
    System.Enum类型
    System.Enum类型是所有枚举类型的抽象基类(该类型不同于枚举类型的基础类型),并且在任何枚举类型

    中都可以使用继承自System.Enum的成员。从任何枚举类型到System.Enum都存在装箱转换,并且从

    System.Enum到任何枚举类型都存在拆箱转换。

    注意,System.Enum本身并不是枚举类型。相反,它是一个类类型,所有枚举类型都派生自该类型。

    System.Enum类型继承自System.ValueType类型(参见4.1.1小节),而后者又继承自object类型。在运行时

    , System.Enum类型的值可以是null,或对任何枚举类型的已装箱值的引用。

    每个枚举类型都定义一个独特的类型;在枚举类型和整型之间或在两个枚举类型之间进行转换时,需要使用

    显式枚举转换。枚举类型的值域并不受它的枚举成员限制。具体来讲,一个枚举的基础类型的任何一个值都

    可以强制转换到该枚举类型,并成为该枚举类型的一个独特的有效值。

    枚举成员的类型为包含它们的枚举类型(出现在其他枚举成员初始值设定项中时除外)。在枚举类型E中声

    明并且关联值为v的枚举成员的值为(E)v。
    每个枚举类型都自动派生自System.Enum类(而该类又派生自System.ValueType和object)。因此,该类的

    继承方法和属性可用于枚举类型的值。

  • 相关阅读:
    数据应用
    Python邮件脚本
    函数
    tab模块
    python登陆,注册小程序
    三元运算+lambda表达式
    计算机基础
    软件测试概要
    asyn_fifo
    perl 对ENV环境变量的使用
  • 原文地址:https://www.cnblogs.com/williamzhao/p/2410621.html
Copyright © 2011-2022 走看看