На данный вопрос уже ответили:
В определении перечисления используется символ <<:
public enum Lights
{
NormalLights = 1 << 0,
Highbeams = 1 << 10,
}
Что он означает и для чего он используется?
Оператор сдвига влево (<<) сдвигает первый операнд влево на число битов, задаваемое вторым операндом. Второй операнд должен иметь тип int или тип, для которого существует предварительно определенное неявное числовое преобразование в int. (Подробнее как советовал @Grundy почитайте тут, определение оттуда)
Примеры для понимания сути оператора:
Console.WriteLine("1 << 1 = " + (1 << 1));
Console.WriteLine("1 << 2 = " + (1 << 2));
Console.WriteLine("1 << 3 = " + (1 << 3));
В ответ даст следующее:
1 << 1 = 2
1 << 2 = 4
1 << 3 = 8
Что же такое сдвиг:
При применении оператора << Вы сдвигаете все число влево на заданное число бит, т.е.
В Вашем случае Вы сдвигаете
public enum Lights
{
NormalLights = 1 << 0, // т.е. 1 сдвигаем на 0
Highbeams = 1 << 10, // т.е. 1 сдвигаем на 10
}
итого это равносильно
public enum Lights
{
NormalLights = 1
Highbeams = 1024
}
Хотя в целом я не понимаю логики заведения enum таким способом. Компилятор поставит уже вычисленные значения.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости