Sprawdzanie, czy obiekt jest liczbą w C #

Chciałbym sprawdzić, czy obiekt jest liczbą, więc.ToString() spowoduje ciąg znaków zawierający cyfry i+,-,.

Czy jest to możliwe dzięki prostemu sprawdzaniu typu .net (np .:if (p is Number))?

Lub Czy należy przekonwertować na ciąg znaków, a następnie spróbować parsować, aby podwoić?

Aktualizacja: Wyjaśnienie mój obiekt jest int, uint, float, double, i tak dalej, nie jest ciągiem. Usiłuję utworzyć funkcję, która serializowałaby dowolny obiekt do xml w ten sposób:

<string>content</string>

lub

<numeric>123.3</numeric>

lub zgłosić wyjątek.

questionAnswers(10)

yourAnswerToTheQuestion