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

    枚举(enum):应用于有多个选择情况下的场合,枚举类型为一组符号常数提供了一个类型名称
     
    枚举的声明:
    1 enum 枚举名
    2 {
    3     枚举成员 [=常数表达式]
    4     ......
    5 }
    使用枚举的优点:
    1.使程序的可读性更好
    2.容易检查出错误
     
    使用枚举注意事项:
    枚举量的运算
    每个枚举类型自动从类System.Enum派生。因此,Enum类的方法和属性可以被用在一个枚举类型的数值上
     
    Enum-->Int
    (1)因为枚举的基类型是除 Char 外的整型,所以可以进行强制转换。
    例如:(int)Colors.Red, (byte)Colors.Green
    Int-->Enum
    (1)可以强制转换将整型转换成枚举类型。
    例如:Colors color = (Colors)2 ,那么color即为Colors.Blue
     
    Enum-->String
    (1)利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串;
    (2)利用Enum的静态方法GetName与GetNames:
    public static string GetName(Type enumType,Object value)
    public static string[] GetNames(Type enumType)
    例如:Enum.GetName(typeof(Colors),3))与Enum.GetName(typeof(Colors), Colors.Blue))的值都是"Blue"
    Enum.GetNames(typeof(Colors))将返回枚举字符串数组。
    String-->Enum
    (1)利用Enum的静态方法Parse:
    public static Object Parse(Type enumType,string value)
    例如:(Colors)Enum.Parse(typeof(Colors), "Red")
     1    enum Color
     2     {
     3         Red,
     4         Yellow,
     5         Green
     6     }
     7     class TrafficLight
     8     {
     9         public static void WhatInfo(Color color)
    10         {
    11             switch(color)
    12             {
    13                 case Color.Red:
    14                     Console.WriteLine("Stop!");
    15                     break;
    16                 case Color.Yellow:
    17                     Console.WriteLine("Warning!");
    18                     break;
    19                 case Color.Green:
    20                     Console.WriteLine("Go!");
    21                     break;
    22                 default:
    23                     break;
    24             }
    25         }
    26     }
    27     class Program
    28     {
    29         static void Main(string[] args)
    30         {
    31             Color c = Color.Red;
    32             Console.WriteLine(c.ToString());
    33             TrafficLight.WhatInfo(c);
    34             c = (Color)Enum.Parse(typeof(Color), "Green");
    35             Console.WriteLine(c.ToString());
    36             TrafficLight.WhatInfo(c);
    37             Console.ReadKey();
    38         }
    39     }
    运行结果:


  • 相关阅读:
    寻找水王
    学习进度条(第十一周)
    学习进度条(第十周)
    学习进度条(第九周)
    团队项目:个人工作总结10
    团队项目:个人工作总结09
    团队项目:个人工作总结08
    深度学习之--深度置信网络DBN
    神经网络学习之----受限玻尔兹曼机RBM(代码实现)
    神经网络学习之----受限玻尔兹曼机RBM
  • 原文地址:https://www.cnblogs.com/fanjianzhi/p/12820116.html
Copyright © 2011-2022 走看看