Какое числовое значение будет у En.Second, если First = 15, Second без значения, Third = 54?

C# / .NET Основы языка Junior

Что это: Члены enum без явного значения получают предыдущее значение плюс 1. После First = 15 элемент Second автоматически равен 16, независимо от того, что Third = 54.

Почему важно: Базовое правило автоинкремента enum часто проверяют в тестах и при проектировании флагов и кодов ошибок.

Под капотом: Компилятор присваивает константы целого базового типа enum на этапе компиляции. Значения хранятся как обычные int-подобные константы без объекта в куче.

Типичная ошибка: Думать, что Second равен 0 или 1, игнорируя явное значение предыдущего члена First = 15.

private enum En
{
  First = 15,
  Second,
  Third = 54
}

Console.WriteLine((int)En.Second); // 16