int foo;
int? bar;
if (bar != null)
{
foo = bar; // does not compile
foo = (int)bar; // compiles
foo = bar.Value; // compiles
}
Я давно знаю, что первое утверждение неверно, но оно всегда меня било. Я проверял, что bar
не является нулевым, так почему компилятор жалуется?