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);
C # поддерживает "расширенные" операторы, поэтому если тип ( bool?
] в этом случае) известно при компиляции, вы должны просто иметь возможность использовать:
return x != y;
Если вам нужны дженерики, тогда EqualityComparer
- ваш друг:
return !EqualityComparer<T>.Default.Equals(x,y);
Обратите внимание, однако, что оба этих подхода используют подход « null == null
» (в отличие от ANSI SQL). Если вам нужно " null! = Null
", вам придется проверить это отдельно:
return x == null || x != y;
Вы можете использовать статический метод Equals на System.Object:
var equal = object.Equals(objA, objB);