Как сравнить обнуляемые типы?
У меня есть несколько мест, где мне нужно сравнить 2 (обнуляемые) значения, чтобы увидеть, совпадают ли они.
Я думаю, что в рамках должно быть что-то для поддержки этого, но не могу ничего найти, поэтому вместо этого сделайте следующее:
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)) ...
Затем у меня есть аналогичные методы для обнуляемых значений, двойных значений и т. Д.
Нет ли более простого способа узнать, совпадают ли два обнуляемых типа?
Обновить:
Оказывается, причиной этого метода было то, что код был преобразован из VB.Net, где Nothing = Nothing возвращает false (сравните с C #, где null == null возвращает true). Код VB.Net должен был использовать.Equals...
вместо.