Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para determinar se uma cadeia de caracteres é uma representação válida de um tipo numérico especificado, use o método estático TryParse
implementado por todos os tipos numéricos primitivos e também por tipos como DateTime e IPAddress. O exemplo a seguir mostra como determinar se "108" é um int válido.
int i = 0;
string s = "108";
bool result = int.TryParse(s, out i); //i now = 108
Se a cadeia de caracteres contiver caracteres não numéricos ou o valor numérico for muito grande ou muito pequeno para o tipo específico especificado, TryParse
retornará false e definirá o parâmetro out como zero. Caso contrário, ele retornará true e definirá o parâmetro out como o valor numérico da cadeia de caracteres.
Observação
Uma cadeia de caracteres pode conter apenas caracteres numéricos e ainda não ser válida para o tipo cujo TryParse
método você usa. Por exemplo, "256" não é um valor válido, byte
mas é válido para int
. "98.6" não é um valor válido para int
, mas é um valor válido para decimal
.
Exemplo
Os exemplos a seguir mostram como usar TryParse
com representações de cadeia de caracteres 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 = {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 = {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 = {number3}");
else
Console.WriteLine("number3 is not a valid decimal");
Programação robusta
Tipos numéricos primitivos também implementam o Parse
método estático, que gera uma exceção se a cadeia de caracteres não for um número válido.
TryParse
geralmente é mais eficiente porque apenas retorna false se o número não for válido.
Segurança do .NET
Sempre use os métodos TryParse
ou Parse
para validar a entrada do usuário de controles como caixas de texto e caixas de combinação.