Sdílet prostřednictvím


Jak zjistit, jestli řetězec představuje číselnou hodnotu (Průvodce programováním v C#)

Chcete-li zjistit, zda je řetězec platným vyjádřením zadaného číselného typu, použijte statickou TryParse metodu implementovanou všemi primitivními číselnými typy a také typy, jako IPAddressDateTime a . Následující příklad ukazuje, jak určit, zda je "108" platným int.

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

Pokud řetězec obsahuje nečíselné znaky nebo číselná hodnota je pro zadaný konkrétní typ příliš velká nebo příliš malá, TryParse vrátí hodnotu false a nastaví parametr na nulu. V opačném případě vrátí hodnotu true a nastaví parametr na číselnou hodnotu řetězce.

Poznámka:

Řetězec může obsahovat pouze číselné znaky a stále není platný pro typ, jehož TryParse metodu používáte. Například "256" není platná hodnota, byte ale je platná pro int. "98,6" není platná hodnota, int ale je platná decimal.

Příklad

Následující příklady ukazují, jak se používají TryParse s řetězcovými longreprezentacemi , bytea decimal hodnotami.


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");

Robustní programování

Primitivní číselné typy také implementují statickou metodu Parse , která vyvolá výjimku, pokud řetězec není platným číslem. TryParse je obecně efektivnější, protože vrátí hodnotu false, pokud číslo není platné.

Zabezpečení .NET

K ověření uživatelského vstupu z ovládacích prvků, jako jsou textová pole a pole se seznamem, používejte TryParse vždy metody nebo Parse metody.

Viz také