Я хочу сравнить два значения во время выполнения, используя отражение. Я использовал Comparer.Default.Compare (x, y) для этого, но я осознал, что этого недостаточно. Допустим, я хочу сравнить двойной с одним (1,0 == 10). Comparer.Default вызовет исключение, потому что он настаивает на том, что оба значения должны быть одного типа (double). Однако для этого существует явное преобразование, которое я и хочу использовать.
Итак, почему я не могу просто использовать Convert.ChangeType? Возьмите случай 1,25> 1 (двойное> целое число). Если я попробую Convert.ChangeType (1.25, typeof (int)) на 1.25, я получу 1, и приведенное выше утверждение потерпит неудачу, когда действительно 1.25 IS> 1.
Итак, кто-то может предложить способ вызова явного сравнения (если оно существует), которое определяет тип?
Спасибо.