У меня есть функция, которая принимает два параметра и возвращает true, если они равны, или false, если они не равны:
private bool isequal(object a, object b)
{
if (a != null)
return a.Equals(b);
if (b != null)
return b.Equals(a);
//if (a == null && b == null)
return true;
}
Теперь я хочу расширить эту функцию. Он также должен возвращать true, если a и b - 2 равных числа, но разного типа.
Например:
int a = 15;
double b = 15;
if (isequal(a,b)) //should be true; right now it's false
{ //...
}
Я уже нашел похожий вопрос (с ответом) лучший способ сравнить double и int , но a и b могут быть любым типом числа или чем-то другим, кроме чисел. Как я могу проверить, являются ли это a и b числовыми вообще? Я надеюсь, что есть лучший способ, чем проверка всех существующих числовых типов .net (Int32, Int16, Int64, UInt32, Double, Decimal, ...)
// update : Мне удалось написать метод, который работает довольно хорошо. Однако могут быть некоторые проблемы с числами десятичного типа (еще не проверял). Но это работает для любого другого числового типа (включая большие числа Int64 или UInt64). Если кому-то интересно: код для равенства чисел