C#:枚举

1. 枚举的综合运用

public enum Color { yellow, blue, green }

class Program
{
    static void Main(string[] args)
    {
        // 1. 正常使用枚举元素
        Console.WriteLine(Color.yellow);    // 输出: yellow

        // 2. 通过定义变量使用枚举元素
        Color c1 = Color.blue;
        Console.WriteLine(c1);             // 输出: blue

        // 3. 枚举的元素实际上是“Int”,而且依次编号(增量为1)
        Console.WriteLine(Convert.ToInt32(Color.green));    // 输出2

        // 4. Enum.Parse()方法,根据“字符串”获取对应的枚举元素
        Color c2 = (Color)Enum.Parse(typeof(Color), "yellow", true);
        if (c2 == Color.yellow)
        {
            Console.WriteLine("Yes");   // 输出: Yes
        }

        // 5. 根据“下标”获取对应的字符串
        string c3 = Enum.GetName(typeof(Color), 1);
        Console.WriteLine(c3);            // 输出: blue

        // 6. 依次输出枚举元素(下标)
        foreach(int i in Enum.GetValues(typeof(Color)))
        {
            Console.WriteLine(i.ToString());                    // 依次输出: 1, 2, 3
            Console.WriteLine(Enum.GetName(typeof(Color), i));  // 根据“下标”获取对应字符串,依次输出: yellow, blue, green
        }

        // 7.依次输出枚举值对应的字符串
        foreach (string c in Enum.GetNames(typeof(Color)))
        {
            Console.WriteLine(c);      // 依次输出: yellow, blue, green
        }
    }
}

2. 枚举的值

  • 枚举元素不是变量,而是常数。因为是常量,所以不能对枚举元素进行赋值。
  • 枚举元素作为常量,它们是有值的,值依次递增,增量为1。
public enum Color { yellow, blue, green }
等同于:
public enum Color { yellow = 0, blue = 1, green = 2 }
public enum Color { yellow, blue = 100, green }
等同于:
public enum Color { yellow, blue = 100, green = 101 }

3. Enum.Parse(enumType, value, ignoreCase)

根据给定“字符串”获取枚举的值,返回object(使用时需要强类型转换)。

// enumType: 枚举的 Type
// value: 包含要转换的值或名称的字符串
// ignoreCase: 如果为 true,则忽略大小写;否则考虑大小写
// 返回值: enumType 类型的对象,其值由 value 表示
public static Object Parse (
    Type enumType,
    string value,
    bool ignoreCase
)
posted @ 2014-04-08 22:21  Rain Man  阅读(1458)  评论(0编辑  收藏  举报