I’d like to check if an object is a number so that .ToString() would result in a string containing digits and +, -, .
Is it possible by simple type checking in .NET? Like:
if (p is Number)
Or should I convert to string, then try parsing to double?
Update: To clarify my object is int, uint, float, double, and so on, it isn’t a string.
I’m trying to make a function that would serialize any object to XML like this:
<string>content</string>
or
<numeric>123.3</numeric>
or raise an exception.
You will simply need to do a type check for each of the basic numeric types.
Here’s an extension method that should do the job:
This should cover all numeric types.
Update
It seems you do actually want to parse the number from a string during deserialisation. In this case, it would probably just be best to use
double.TryParse.Of course, this wouldn’t handle very large integers/long decimals, but if that is the case you just need to add additional calls to
long.TryParse/decimal.TryParse/ whatever else.