Как компилятор C# Visual Studio обрабатывает сравнения struct/NULL? [дубликат]C#

Место общения программистов C#
Anonymous
Как компилятор C# Visual Studio обрабатывает сравнения struct/NULL? [дубликат]

Сообщение Anonymous »

Мы только что столкнулись с таким плохим кодом в нашей кодовой базе C#.net 4

Код: Выделить всё

DateTime myDate = someValue;
If (myDate==Null)
Do Something
Нам пришло в голову, что такое условие никогда не произойдет.

Как компилятор обрабатывает эти сравнения структур, не допускающие значения NULL?

Первоначально мы были удивлены тем, что он компилирует ... но рационализировал это тем, что, безусловно, можно было бы проводить постоянное сравнение, например:

Код: Выделить всё

If(1==2)
Что также никогда не разрешит true... но в этом случае компилятор легко определит, что это константы. Оптимизирует ли он или объединяет сравнения, не допускающие значения NULL?

Подробнее здесь: https://stackoverflow.com/questions/940 ... omparisons

Вернуться в «C#»