Ничего! = Ноль - или нет? - PullRequest
14 голосов
/ 09 июля 2010

Недавно в предыдущем проекте я натолкнулся на своеобразную разницу между VB.NET и C #.

Рассмотрим следующее выражение C #, которое:

null <= 2

Это выражение оценивается как Ложь , чего я и ожидал.Тогда соответствующее выражение VB.NET:

Nothing <= 2

Я был удивлен, узнав, что это выражение на самом деле оценивается как True

Это кажется довольно фундаментальным проектным решением междудва языка, и это, безусловно, поймало меня.

Кто-нибудь может сказать мне, почему?Нулевые и ничто не одно и то же?Если да, то почему они ведут себя по-разному?

1 Ответ

30 голосов
/ 09 июля 2010

Nothing в VB соответствует значению по умолчанию для данного типа.(Подробнее см. эту ссылку .)

Для целочисленного сравнения (которое компилятор примет из правого операнда), Nothing будет, таким образом, 0.0 <= 2 верно по более очевидным причинам: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...