Перечисление VB.NET - PullRequest
       3

Перечисление VB.NET

0 голосов
/ 16 апреля 2010

Гарантируется ли, что числовые значения для Enum только с неинициализированными значениями начинаются с нуля и увеличиваются на единицу в указанном порядке?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2010

Да. Из документации:

Если вы не укажете инициализатор для член Visual Basic инициализирует его либо к нулю (если это первый член в списке участников), или к значению больше на единицу, чем у непосредственно предшествующий член.

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

0 голосов
/ 16 апреля 2010

Да. Если вы устанавливаете одно явно, то после него также увеличиваются.

Это позволяет вам иметь:

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, а Fall будет иметь то же значение, что и Autumn.

Извините, мой пример на C #, но то же самое относится и к VB.net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...