Avatar ·

Comment vérifier si une chaîne est un nombre en C# ? (Analogue de IsNumeric)

Bonjour, collègues ! Je suis un développeur C# débutant et j'ai rencontré une tâche typique : il faut vérifier que la chaîne saisie par l'utilisateur contient bien un nombre, et non des déchets. Par exemple, l'utilisateur saisit son âge dans un champ de texte, et avant de le stocker dans un int, je veux m'assurer que ce n'est pas "vingt" ou "abc123". J'ai essayé d'utiliser Convert.ToInt32() dans un try-catch, mais cela semble lourd et, me semble-t-il, pas très performant. De plus, j'ai besoin de distinguer les nombres entiers des nombres à virgule flottante. Existe-t-il en C# un analogue intégré de la fonction IsNumeric de VB.NET ou une manière élégante de faire cela ? Voici comment j'essaie actuellement de résoudre le problème :
string userInput = "123.45";
try
{
    int number = Convert.ToInt32(userInput);
    Console.WriteLine("C'est un nombre entier");
}
catch (FormatException)
{
    // J'essaie de vérifier pour double
    try
    {
        double doubleNumber = Convert.ToDouble(userInput);
        Console.WriteLine("C'est un nombre à virgule flottante");
    }
    catch (FormatException)
    {
        Console.WriteLine("Ce n'est pas un nombre");
    }
}