Является ли он равным следующему коду? Какова функция '?' знак здесь?
E_Week week= null;
Ответ 1
В вашем коде используется то, что называется тип с нулевым значением. Перечисление, подобно int или DateTime, является так называемым "типом значения", который всегда должен иметь некоторое значение. Необязательные типы позволяют обрабатывать типы значений, как если бы они допускали нулевые значения.
Например, этот код является недопустимым и не будет компилироваться, потому что перечисления не могут иметь значение null:
Самое существенное отличие состоит в том, что второе утверждение не работает;) The? знак в основном дает вам возможность установить тип значения (в этом случае перечисление) на нуль, что обычно невозможно.