C# 枚举简析

来源:互联网 发布:淘宝允许好评返现了 编辑:程序博客网 时间:2024/06/15 22:20
C# 枚举学习需要注意:
System.Enum 类型是所有枚举类型的抽象基类(它是一种与枚举类型的基础类型不同的独特类型),并且从 System.Enum 继承的成员在任何枚举类型中都可用。存在从任何枚举类型到System.Enum 的装箱转换,并且存在从 System.Enum 到任何枚举类型的取消装箱转换。System.Enum 本身不是枚举类型。相反,它是一个类类型,所有枚举类型都是从它派生的。类型 System.Enum 从类型 System.ValueType派生,而后者又从类型 object 派生。在运行时,类型 System.Enum 的值可以是 null 或是对任何枚举类型的装了箱的值的引用。
C# 枚举的优点:
枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值。
枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。
枚举使代码更易于键入。在给枚举类型的实例赋值时,VS.NET IDE会通过IntelliSense弹出一个包含可接受值的列表框,减少了按键次数,并能够让我们回忆起可能的值

C# 枚举的常用方法:
Enum.Parse()方法
这个方法带3个参数,第一个参数是要使用的枚举类型。其语法是关键字typeof后跟放在括号中的枚举类名。typeof运算符将在第5章详细论述。第二个参数是要转换的字符串,第三个参数是一个bool,指定在进行转换时是否忽略大小写,最后,注意Enum.Parse()方法实际上返回一个对象引用—— 我们需要把这个字符串显式转换为需要的枚举类型(这是一个取消装箱操作的例子)
Enum.GetName()方法 获得枚举某一个值的对应名称
Enum.GetValues()方法 得到枚举的所有的值
Enum.GetNames(typeof(枚举名称))获取枚举所有的名称
foreach(string temp in Enum.GetNames(typeof(UIName)))
for (int i = 0; i < Enum.GetNames(typeof(UIName)).Length; i++)
//简例
using System;public class ParseTest{    enum Colors    {        Red = 1,        Green = 2,        Blue = 4,        Yellow = 8    };    public static void Main()    {               foreach (string colorName in Enum.GetNames(typeof(Colors)))        {            Console.WriteLine("{0}={1}", colorName,            Convert.ToInt32(Enum.Parse(typeof(Colors), colorName)));        }            Console.WriteLine();            Colors myOrange = (Colors)Enum.Parse(typeof(Colors), "Red, Yellow");            Console.WriteLine("{1} {0}", myOrange, Convert.ToInt64(myOrange));            Console.ReadLine();    }}
原创粉丝点击