Alexander_fx, крайне странное поведение.
Спецификация утверждает, что при Option Strict On разрешены только неявные widening преобразования типов, а преобразование из одного enum в другой является narrowing преобразованием:
|
---|
The set of implicit conversions depends on the compilation environment and the Option Strict statement. If strict semantics are being used, only widening conversions may occur implicitly. If permissive semantics are being used, all widening and narrowing conversions (in other words, all conversions) may occur implicitly. |
|
---|
Narrowing Conversions .... From a numeric type to an enumerated type. From an enumerated type to a numeric type its underlying numeric type has a narrowing conversion to. From an enumerated type to another enumerated type. |
Лично мне тоже интересно понять почему компилятор себя так ведет. Кстати dotPeek показал просто сравнение переменных. Надо еще на уровне IL кода посмотреть.