Какое числовое значение будет у 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