C# 枚举类型 enum (一)

1.枚举使用enum关键字来声明,与类同级。枚举可以和类并列也可以

写在类里面,不能写在方法里。

2.枚举是值类型,隐式继承自System.Enum,不能手动修改。

System.Enum本身是引用类型,继承自 System.ValueType。

3.·枚举本身一般不加访问修饰符,要加的话只能是internal

或public;

·枚举都是隐式密封的(sealed),不允许作为基类派生子类。

4.枚举里面的成员只能是默认公共的静态的(public、static),不能

有访问修饰符;

5.·每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素

的默认基础类型为 int。

·默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次

递增 1。

·枚举数可以具有重写默认值的初始值设定项。但是,强烈建议枚

举包含一个值为 0 的常量。

·枚举元素不可以重复,枚举元素的值可以重复。

·枚举数的名称中不能包含空白。

6.最后一个元素后的逗号可有可无。枚举最后的冒号可有可无。

7.基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型

到整型的转换需要用显式类型转换来完成。

详情看下面代码:

namespace EnumTest01
{
    class Program
    {
        static void Main(string[] args)
        {
            //3.-----------------------------------------------------------------------------------------------------
            //***基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。
            int a = (int)Days1.Fri;
            Console.WriteLine(a);          //打印6
            Console.WriteLine(Days1.Fri);  //打印Fri

            Console.ReadKey();
        }

        //4.-------------------------------------------------------------------------------------------------
        //***枚举可以和类并列也可以写在类里面,不能写在方法里。
        enum A : byte
        {

        }
    }

    //1.---------------------------------------------------------------------------------------------

    //***枚举本身一般不加访问修饰符,要加的话只能是internal或public.
    enum Animal    //此处可以加访问修饰符internal或者public。
    {
        dog = 1,       //枚举里面的成员是默认公共的,不能有其他修饰符。
        cat = 0,
        pig = 1,
        //pig = 0      
    }

    //***枚举都是隐式密封的,不允许作为基类派生子类。
    //enum M : Animal { }     //这里会报错,因为枚举不能作为基类去派生子类。

    //***枚举里面的成员只能是默认公共的静态的,默认为Int32类型,不能有访问修饰符。

    //2.---------------------------------------------------------------------------------------------

    //***每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素的默认基础类型为 int.
    //byte的位置可以写: byte、sbyte、short、ushort、int、uint、long、ulong。不写的话默认为int.
    enum A : byte
    {

    }

    //***默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:
    enum Days1 { Sat, Sun, Mon, Tue, Wed, Thu, Fri };
    //在 Days1 枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如:
    enum Days2 { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
    //在 Days2 枚举中,强制元素序列从 1 而不是 0 开始, Sat 为 1,Sun 为 2,Mon 为 3,依此类推。但是,强烈建议枚举包含一个值为 0 的常量。

    //***枚举元素不可以重复,枚举元素的值可以重复。
    enum Days3
    {
        Sat = 0,
        //Sat = 0,    //此处会报错,以为已经定义了一个Sat. 枚举成员不能相同,但枚举的值可以相同。
        Sun = 1,
        Mon = 1,
        Tue,
        Wed,
        Thu = 10,
        Fri,          //最后一个元素后的逗号可有可无。
    };                //枚举最后的这个冒号可有可无。
    //在 Days3 枚举中, Tue的值是2,Wed的值是3,Fri的值是11。

    //***枚举数的名称中不能包含空白。
}
时间: 2024-10-09 07:57:24

C# 枚举类型 enum (一)的相关文章

iOS/object-c: 枚举类型 enum,NS_ENUM,NS_OPTIONS

一般情况下,我们采用C风格的enum关键字可以定义枚举类型. [cpp] view plaincopy enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimat

人生苦短之Python枚举类型enum

枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python中是如何实现的呢? 补充:很多初学者一下子不明白枚举是什么意思,比如我们有段程序很多地方需要用到12个月月份,可以将每个月份都定义出来使用: String Jan = "1月份",但是这样用起来很不好用,需要写12个,然后后续用的时候也不清晰明白,那么枚举类型就可以解决问题,它将这12个月

C# 中的枚举类型 enum (属于值类型)

原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace enumType { enum Season // enum 类型定义在 class 外面 { Spring, Summer, Fall, Winter // 最后一个元素后面

【转】java枚举类型enum的使用

原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举

深入理解Java枚举类型(enum)

[版权申明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/71333103 出自[zejian的博客] 关联文章: 理解Java位运算 深入理解Java类型信息(Class对象)与反射机制 本篇主要是深入对Java中枚举类型进行分析,主要内容如下: 理解枚举类型 枚举的定义 枚举实现原理 枚举的常见方法 Enum抽象类常见方法 编译器生成的Values方法与ValueOf方法 枚举与Clas

java 枚举类型enum 的使用

java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先

C++(浅析枚举类型-enum)

枚举类型 枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合. 如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内. 创建枚举,需要使用关键字 enum.枚举类型的一般形式为: enum enum-name { list of names } var-list;enum-name 是枚举类型的名称.名称列表 { list of names

Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件

在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <summary> /// 通过枚举类型 绑定到ListControl 控件的通用类 /// 用法:直接传入要绑定的Control: EnumManager<枚举>.Bind_Enum_Control(ListControl); /// </summary> /// <typep

iOS - 枚举类型 enum,NS_ENUM,NS_OPTIONS

一般情况下,我们采用C风格的enum关键字可以定义枚举类型. enum{ UIViewAnimationTransitionNone, UIViewAnimationTransitionFlipFromLeft, UIViewAnimationTransitionFlipFromRight, UIViewAnimationTransitionCurlUp, UIViewAnimationTransitionCurlDown, } UIViewAnimationTransition; //位移操作