代码之家  ›  专栏  ›  技术社区  ›  Steven

vb.net枚举表示法

  •  0
  • Steven  · 技术社区  · 14 年前

    是否保证 Enum 只有未初始化的值从零开始,按定义的顺序递增一?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Rob Windsor    14 年前

    对。从文档中:

    如果未为指定初始值设定项 一个成员,visual basic初始化它 要么为零(如果是第一个 成员列表中的成员),或值 比 紧靠前的成员。

    http://msdn.microsoft.com/en-us/library/8h84wky1(VS.80).aspx

        2
  •  0
  •   NibblyPig    14 年前

    对。如果显式地设置了一个,则之后的值也会增加。

    这样你就可以:

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine((int)Seasons.Spring);
            Console.WriteLine((int)Seasons.Summer);
            Console.WriteLine((int)Seasons.Autumn);
            Console.WriteLine((int)Seasons.Fall);
            Console.WriteLine((int)Seasons.Winter);
            Console.Read();
        }
    }
    
    public enum Seasons
    {
        Spring,
        Summer,
        Autumn,
        Fall = Autumn,
        Winter
    }
    

    输出:0 1 2 2 3

    它们的值为0、1、2、3,秋季的值与秋季的值相同。

    对不起,我的例子是用C语言写的,但VB.NET也一样