Como: Determinar se uma string representa um valor numérico (guia de programação translation from VPE for Csharp)

Para determinar se uma seqüência de caracteres é uma representação válida de um tipo numérico especificado, use o estático TryParse método que é implementado por todos sistema autônomo tipos numéricos primitivos e também por tipos, sistema autônomo DateTime e IPAddress. O exemplo a seguir mostra como determinar se "108" é válidoint.

  int i = 0; 
  string s = "108";
  bool result = int.TryParse(s, out i); //i now = 108

Se a seqüência de caracteres contém caracteres não numéricos ou o valor numérico é muito grande ou muito pequeno para o tipo específico você especificou, TryParse retorna false e define o parâmetro de saída como zero. Caso contrário, retorna true e define o parâmetro de saída para o valor numérico da seqüência de caracteres.

Observação:

Uma seqüência de caracteres pode conter somente caracteres numéricos e ainda não seja válido para o tipo cujos TryParse método que você usar. Por exemplo, "256" não é um valor válido parabyte mas é válido para int. "98,6 "não é um valor válido paraint mas é válido decimal.

Exemplo

Os exemplos a seguir mostram como usar TryParse com representações de strings de long, byte, e decimal valores.

string numString = "1287543"; //"1287543.0" will return false for a long
long number1 = 0;
bool canConvert = long.TryParse(numString, out number1);
if (canConvert == true)
  Console.WriteLine("number1 now = {0}", number1);
else
  Console.WriteLine("numString is not a valid long");

byte number2 = 0;
numString = "255"; // A value of 256 will return false
canConvert = byte.TryParse(numString, out number2);
if (canConvert == true)
  Console.WriteLine("number2 now = {0}", number2);
else
  Console.WriteLine("numString is not a valid byte");

decimal number3 = 0;
numString = "27.3"; //"27" is also a valid decimal
canConvert = decimal.TryParse(numString, out number3);
if (canConvert == true)
  Console.WriteLine("number3 now = {0}", number3);
else
  Console.WriteLine("number3 is not a valid decimal");            

Programação robusta

Tipos primitivos numéricos também implementam a Parse método estático, que lança uma exceção se a seqüência de caracteres não é um número válido. TryParse é geralmente mais eficiente porque apenas retornará false se o número inválido.

Segurança

Sempre usar o TryParse ou Parse métodos para validar a entrada do usuário de controles sistema autônomo caixas de texto e caixas de combinação.

Consulte também

Tarefas

Como: Converter um byte array para um int (translation from VPE for Csharp Programming guia)

Como: Converter uma seqüência de caracteres em um int (translation from VPE for Csharp Programming guia)

Como: Converter entre cadeias de caracteres hexadecimal e tipos numéricos (guia de programação translation from VPE for Csharp)

Conceitos

Analisando seqüências de caracteres numéricas

Outros recursos

Convertendo tipos

Tipos de Formatação