private enum E_Week
{
Mon = 0,
Tue,
. . .
}
Что следующее кодирует средний?
E_Week? week= null;
Это равно следующему коду? Какова функция'?' подпишитесь здесь?
E_Week week= null;
Ваш код использует то, что называется Nullable . Enum, как и int или dateTime, это то, что известно как «тип значения», который должен всегда иметь некоторое значение. Nullabley типы позволяют вам лечить типы значений, как если бы они позволяют нулевые значения.
Например, этот код недействителен и не будет компитенным, потому что Enums не может быть нулевым:
E_Week week = null;
, но этот код действителен:
E_Week? week = null;
, а это точно так же, как это:
Nullable<E_Week> week = null;
E_Week?
эквивалентно Nullable
, см. здесь для получения дополнительной информации Nullable
Типы.
Самое значительное отличие состоит в том, что второе утверждение не работает;) то? Знак в основном дает вам возможность установить тип значения (в данном случае Enum) к нулю, который обычно невозможен ..