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ú