Я хотел бы создать функцию, которая проверяет, имеет ли числовое значение, переданное как аргумент, значение больше нуля. Что-то вроде этого:
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? Если сбой броска, я верну ложь. Есть ли лучший (читайте более короткий, более читаемый) способ сделать это?
Edit: Некоторые спрашивают, знаю ли я, что тип будет числовым, почему объект и т.д. Надеюсь, это упростит ситуацию.
Эта функция будет частью преобразователя Silverlight, который реализует интерфейс IValueConverter
, который имеет подпись преобразования
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
Во-первых, я только хотел, чтобы конвертер работал с ints, но мое воображение начало бегать и думать, что, если у меня есть числа с плавающей запятой и другие числовые типы. Я хотел сделать преобразователь максимально гибким. Первоначально я думал, что вся эта дополнительная информация будет мешать тому, что я хотел сделать, поэтому я не включил ее в свой вопрос.