Avatar ·

Cómo verificar si una cadena es un número en C# (análogo a IsNumeric)

¡Hola, colegas! Soy un desarrollador principiante de C# y me he encontrado con una tarea típica: necesito verificar que la cadena ingresada por el usuario contenga un número y no basura. Por ejemplo, el usuario ingresa su edad en un campo de texto, y antes de guardarlo en un int, quiero asegurarme de que no sea "veinte" o "abc123". He intentado usar Convert.ToInt32() dentro de try-catch, pero parece engorroso y, según creo, no muy eficiente. Además, necesito distinguir entre números enteros y números de punto flotante. ¿Hay en C# un análogo incorporado de la función IsNumeric de VB.NET o alguna forma elegante de hacer esto? Así es como estoy intentando resolver el problema actualmente:
string userInput = "123.45";
try
{
    int number = Convert.ToInt32(userInput);
    Console.WriteLine("Es un número entero");
}
catch (FormatException)
{
    // Intento verificar si es double
    try
    {
        double doubleNumber = Convert.ToDouble(userInput);
        Console.WriteLine("Es un nú