C#枚举类型enum(一)-创新互联

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

创新互联建站长期为上1000家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为大名企业提供专业的成都网站制作、成都做网站、外贸营销网站建设大名网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

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

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。

    //***枚举数的名称中不能包含空白。
}

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


名称栏目:C#枚举类型enum(一)-创新互联
转载来源:http://ybzwz.com/article/dccici.html