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)。因此,该类的

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

  • 相关阅读:
    MongoDB的特殊操作
    MongoDB的$作为下标的用法
    MongoDB之$关键字,以及$修饰器$set,$inc,$push,$pull,$pop
    MongoDB的数据类型
    MongoDB的增删改查
    Drozer快速使用指南
    [安全分析报告]使用某科技公司客服系统的风险分析
    某客服系统上传漏洞导致服务器被拿下(续)
    YS端对端之间SSL通信安全问题
    某客服系统上传漏洞导致服务器被拿下
  • 原文地址:https://www.cnblogs.com/williamzhao/p/2410621.html
Copyright © 2011-2022 走看看