请高手解释一下什么是枚举类的内在类型,不是已经在枚举类中包含了枚举的成员。为什么又提出内在类型这个概念呢?

解决方案 »

  1.   

    枚举类可以显式的声明它的内在类型是sbyte, byte, short, ushort, int, uint, long,  ulong。如果一个枚举类没有显式声明它的内在类型,则缺省为int
      

  2.   

    把枚举类型理解成一种功能封装,内在类型是int
      

  3.   

    内在类型就是枚举成员对应的整数类型(int,short等等),我就是觉得直接使用枚举成员不就完了
    enum Weekday
    {
        Monday, 
        Diamonds, 
    Hearts, Spades }
    ,这些成员对应的整数“似乎”没什么用啊?
      

  4.   

    public enum aaa : int
    {
    ......
    }
      

  5.   

    内在类型就是枚举成员对应的整数类型(int,short等等),我就是觉得直接使用枚举成员不就完了,比如Suit.Clubs
    enum Suit

       Clubs, 
       Diamonds, 
       Hearts = 42,
       Spades,
    };
    ,这些成员对应的整数(42)“似乎”没什么用啊?
      

  6.   

    推荐你看下这篇文章,作者对枚举分析得很详细:http://www.cnblogs.com/allenlooplee/archive/2004/12/19/70230.aspx不过我看完后疑问更多了。
      

  7.   

    ls的,你这不是让我愁上加愁吗,呵呵
    请问大家,我能不能这样理解,把枚举类的内在类型看成是类似索引器中的index,如果我现在有一个objEnum枚举对象和一个index,我就可以通过他们获得我需要的枚举成员。
      

  8.   

    有了index,你就不需要这个objEnum枚举对象,因为枚举中的成员是静态的。
      

  9.   

    public enum test { aa, bb, cc }
            private void Form1_Load(object sender, EventArgs e)
            {
                test t = test.bb;
                Console.WriteLine(t);// bb
                Console.WriteLine( (int)t);//1
                Console.WriteLine(Enum.Parse(typeof(test),"1"));//bb
            }
      

  10.   

    枚举类可以显式的声明它的内在类型是sbyte, byte, short, ushort, int, uint, long,  ulong。如果一个枚举类没有显式声明它的内在类型,则缺省为int