日期:2014-05-17  浏览次数:20903 次

请教一个有关数组的问题,还请各位大神帮帮忙,多谢
 class Program
    {
      enum MyColor { 赤, 橙, 黄, 绿, 青, 蓝, 紫 };            
        enum People { 小明 = 22, 小张 = 21, 小王 = 16, 小吕 = 23 };          
        static void Main(string[] args)
        {
            string[] color = Enum.GetNames(typeof(MyColor));    
              Console.WriteLine("七色光:");
            foreach (string c in color) 
              Console.Write("{0}  ", c);
            People[] person = { People.小明, People.小张, People.小王, People.小吕 };
            Console.WriteLine("\n个人信息:");
            foreach (People p in person)                       
            {
                Console.WriteLine("{0} 年龄:{1}", p, p.GetHashCode());
            }
            Console.ReadLine();
        }
我想问三个问题:
  1、Enum.GetNames(typeof(MyColor))中,GetNames和typeof(MyColor)分别是什么意思?
  2、People[] person 中,People为什么可以声明一个数组呢?
  3、p.GetHashCode()中,GetHashCode()是什么意思呢?
我刚开始自学,还请各位大神帮帮忙 !多谢了!

------解决方案--------------------
1、Enum.GetNames是Enum的静态方法,用于获取枚举类型的名称(返回string数组)。因为GetNames方法需要提供一个枚举类型的Type,因此通过typeof(MyColor)可以得到。
2、数组就是具有相同类型的一系列变量的集合。只要是相同类型的都可以放在一起。类型可以是string、int,也可以是class、enum。
3、其实想获得枚举元素所代表的值,可以直接(int)p。
比如:
Console.WriteLine("{0} 年龄:{1}", p, (int)p);