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

У меня есть несколько мест, где мне нужно сравнить 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... вместо.

Ответы на вопрос(6)

Ваш ответ на вопрос