Как сравнить обнуляемые типы?

Null не является экземпляром какого-либо класса.

Однако вы можете присвоить значение null переменным любого типа (объекта или массива):

 // this is false   
 boolean nope = (null instanceof String);

 // but you can still use it as a String
 String x = null;
 "abc".startsWith(null);
55
задан Jon Seigel 1 April 2010 в 01:59
поделиться

6 ответов

C # поддерживает "расширенные" операторы, поэтому если тип ( bool? ] в этом случае) известно при компиляции, вы должны просто иметь возможность использовать:

return x != y;

Если вам нужны дженерики, тогда EqualityComparer .Default - ваш друг:

return !EqualityComparer<T>.Default.Equals(x,y);

Обратите внимание, однако, что оба этих подхода используют подход « null == null » (в отличие от ANSI SQL). Если вам нужно " null! = Null ", вам придется проверить это отдельно:

return x == null || x != y;
71
ответ дан 24 November 2019 в 19:23
поделиться

Просто используйте == или .Equals () .

5
ответ дан 24 November 2019 в 19:23
поделиться

Использовать сравнение:

http://msdn.microsoft.com/en-us/library/dxxt7t2a.aspx

6
ответ дан 24 November 2019 в 19:23
поделиться
39
ответ дан 24 November 2019 в 19:23
поделиться
if (x.Equals(y)) 
22
ответ дан 24 November 2019 в 19:23
поделиться

Вы можете использовать статический метод Equals на System.Object:

var equal = object.Equals(objA, objB);
6
ответ дан 24 November 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: