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)