zoukankan      html  css  js  c++  java
  • 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 类型 

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

    详情看下面代码:

     1 namespace EnumTest01
     2 {
     3     class Program
     4     {
     5         static void Main(string[] args)
     6         {
     7             //3.-----------------------------------------------------------------------------------------------------
     8             //***基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。
     9             int a = (int)Days1.Fri;
    10             Console.WriteLine(a);          //打印6
    11             Console.WriteLine(Days1.Fri);  //打印Fri
    12 
    13             Console.ReadKey();
    14         }
    15 
    16         //4.-------------------------------------------------------------------------------------------------
    17         //***枚举可以和类并列也可以写在类里面,不能写在方法里。
    18         enum A : byte
    19         {
    20 
    21         }
    22     }
    23 
    24 
    25     //1.---------------------------------------------------------------------------------------------
    26 
    27     //***枚举本身一般不加访问修饰符,要加的话只能是internal或public.
    28     enum Animal    //此处可以加访问修饰符internal或者public。
    29     {
    30         dog = 1,       //枚举里面的成员是默认公共的,不能有其他修饰符。
    31         cat = 0,
    32         pig = 1,
    33         //pig = 0      
    34     }
    35 
    36     //***枚举都是隐式密封的,不允许作为基类派生子类。
    37     //enum M : Animal { }     //这里会报错,因为枚举不能作为基类去派生子类。
    38 
    39     //***枚举里面的成员只能是默认公共的静态的,默认为Int32类型,不能有访问修饰符。
    40 
    41 
    42     //2.---------------------------------------------------------------------------------------------
    43 
    44     //***每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素的默认基础类型为 int.
    45     //byte的位置可以写: byte、sbyte、short、ushort、int、uint、long、ulong。不写的话默认为int.
    46     enum A : byte
    47     {
    48 
    49     }
    50 
    51     //***默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:
    52     enum Days1 { Sat, Sun, Mon, Tue, Wed, Thu, Fri };
    53     //在 Days1 枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如:
    54     enum Days2 { Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri };
    55     //在 Days2 枚举中,强制元素序列从 1 而不是 0 开始, Sat 为 1,Sun 为 2,Mon 为 3,依此类推。但是,强烈建议枚举包含一个值为 0 的常量。
    56 
    57     //***枚举元素不可以重复,枚举元素的值可以重复。
    58     enum Days3
    59     {
    60         Sat = 0,
    61         //Sat = 0,    //此处会报错,以为已经定义了一个Sat. 枚举成员不能相同,但枚举的值可以相同。
    62         Sun = 1,
    63         Mon = 1,
    64         Tue,
    65         Wed,
    66         Thu = 10,
    67         Fri,          //最后一个元素后的逗号可有可无。
    68     };                //枚举最后的这个冒号可有可无。
    69     //在 Days3 枚举中, Tue的值是2,Wed的值是3,Fri的值是11。
    70 
    71     //***枚举数的名称中不能包含空白。
    72 }
  • 相关阅读:
    mapent
    java map使用
    set集合HashSet
    List集合的子类ArrayList和LinkedList
    List集合和iterator并发异常处理
    java泛型接口
    java集合---迭代器iterator
    java集合(类似python的列表)
    安装python3.7和PyCharm专业版
    python类的__slots__属性、__del__属性、上下文(__enter__和__exit__)、
  • 原文地址:https://www.cnblogs.com/Peng18233754457/p/7799740.html
Copyright © 2011-2022 走看看