求助:C#枚举值的引用..

来源:百度知道 编辑:UC知道 时间:2024/06/14 22:26:49
using System;
enum Color{ Red,Yellow,Blue,Green,Purple,Blak,White};
class Class1
{
static void Main(string[] args)
{
Color[] color_arr = new Color [5];
int[] int_arr = new int []{1,2,3,};
color_arr[0]=(Color)int_arr[0];
color_arr[1]=(Color)int_arr[1];
color_arr[2]=(Color)int_arr[2];
Console .WriteLine ("The value of color[0] is:{0}",color_arr[0]);
Console .WriteLine ("The value of color[1] is:{0}",color_arr[1]);
Console .WriteLine ("The value of color[2] is:{0}",color_arr[2]);
Console.Read ();
}

}
那数组和枚举的关系真的迷糊..最后的输出为
Yellow
Blue
Green
那位能帮助说明:color_arr是否算是枚举Color的索引器? 它们间值传递是怎样的流程? 当声明了color_arr数组里的元素怎么值都是 Red呢?

color_arr不是索引器,它只是Color枚举的数组而已。枚举类型中的Red对应的值应该是0,Yellow为1。。。
也就是说: (Color) 0 的值应该是Red,而(int) Color.Red 的值是0。
所以你申明一个新的color_arr,如果不给每一个元素赋值,默认的值就是0,也就是Red。

color_arr[0]=(Color)int_arr[0];
color_arr[1]=(Color)int_arr[1];
color_arr[2]=(Color)int_arr[2];
这三句话实际上就是在color_arr赋值。