Я хотел бы создать функцию, которая проверяет, имеет ли числовое значение, переданное в качестве аргумента, значение больше нуля. Примерно так:
public bool IsGreaterThanZero(object value)
{
if(value is int)
{
return ((int)value > 0);
}
else if(value is float)
{
// Similar code for float
}
return false;
}
Могу ли я попытаться привести объект, переданный в качестве аргумента функции, к одному числовому типу данных, чтобы я мог сравнить его с нулем, вместо проверки каждого типа в моем операторе if? Если произойдет сбой, я верну false. Есть ли лучший (читай короче, более читаемый) способ сделать это?
Edit:
Некоторые спрашивают, знаю ли я, что тип будет числовым, почему объект и т. Д. Надеюсь, это прояснит ситуацию.
Эта функция будет частью преобразователя Silverlight, который реализует интерфейс IValueConverter
с сигнатурой преобразования
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
Во-первых, я хотел, чтобы конвертер работал только с целыми числами, но мое воображение начало сходить с ума и думать, что если у меня есть числа с плавающей точкой и другие числовые типы. Я хотел сделать конвертер максимально гибким. Сначала я думал, что вся эта дополнительная информация помешает тому, что я хотел сделать, поэтому я не включил ее в свой вопрос.