Как компилятор 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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