Поскольку System.Enum
является классом, вы не можете объявить переменную типа Nullable<Enum>
(поскольку Nullable<T>
возможно, только если T
является struct
).
Таким образом:
Enum? bob = null;
не будет компилироваться, как и ваш код.
Это определенно странно (поскольку Enum
сам по себе является классом, но конкретный Enum
, который вы определяете в своем коде, является struct
), если вы не сталкивались с ним раньше, но это явно class
(не struct
) согласно документам и исходному коду.