У меня есть несколько мест, где мне нужно сравнить значения 2 (nullable), чтобы убедиться, что они одинаковые.
Я думаю, что в этой области должно быть что-то в этой поддержке, но ничего не найти, поэтому вместо этого нужно иметь следующее:
public static bool IsDifferentTo(this bool? x, bool? y)
{
return (x.HasValue != y.HasValue) ? true : x.HasValue && x.Value != y.Value;
}
Тогда в коде есть if (x.IsDifferentTo(y)) ...
Тогда у меня есть аналогичные методы для нулевых ints, nullable double и т.д.
Нет ли более простого способа увидеть, являются ли два типа NULL одинаковыми?
Update:
Оказывается, причина в том, что этот метод существовал, потому что код был преобразован из VB.Net, где Nothing = Nothing возвращает false (сравните с С#, где null == null возвращает true). Вместо этого код VB.Net должен был использовать .Equals...
.