Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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í výstupní 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 pro int, ale je platnou hodnotou pro decimal.
Příklad
Následující příklady ukazují, jak používat TryParse s řetězcovými reprezentacemi hodnot long, byte a decimal.
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");
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
Vždy používejte metody TryParse nebo metody Parse k ověření uživatelského vstupu z ovládacích prvků, jako jsou textová pole a pole se seznamem.