Avatar ·

Como verificar se uma string é um número em C#? (Análogo ao IsNumeric)

Olá, colegas! Sou um desenvolvedor C# iniciante e me deparei com uma tarefa típica: preciso verificar se a string inserida pelo usuário contém exatamente um número, e não algum lixo. Por exemplo, o usuário digita sua idade em um campo de texto e, antes de salvá-la como int, quero ter certeza de que não é "vinte" ou "abc123". Tentei usar Convert.ToInt32() dentro de try-catch, mas parece complicado e, na minha opinião, não é muito performático. Além disso, preciso distinguir números inteiros de números de ponto flutuante. Existe em C# um análogo embutido da função IsNumeric do VB.NET ou alguma maneira elegante de fazer isso? Aqui está como estou tentando resolver o problema atualmente:
string userInput = "123.45";
try
{
    int number = Convert.ToInt32(userInput);
    Console.WriteLine("Isso é um número inteiro");
}
catch (FormatException)
{
    // Tentando verificar se é double
    try
    {
        double doubleNumber = Convert.ToDouble(userInput);
        Console.WriteLine("Isso é um nú