Sdílet prostřednictvím


Jak: zjistit, zda řetězec představuje číselnou hodnotu (Příručka programování C#)

Chcete-li zjistit, zda je řetězec platné vyjádření zadaný numerický typ, použít statické TryParse metoda, která je implementována všechny primitivní typy číselných a také typy jako DateTime a IPAddress.Následující příklad ukazuje, jak lze zjistit, zda "108" je platný 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 příliš velké nebo příliš malé pro určitý typ, který jste zadali, TryParse vrátí hodnotu false a parametr out se nastaví na nulu.V opačném případě vrátí hodnotu true a nastaví parametr out na numerickou hodnotu řetězce.

[!POZNÁMKA]

Řetězec může obsahovat pouze číslice a stále nejsou platné pro typ jehož TryParse metoda.Například "256" není platná hodnota pro byte , ale je platné pro int. "98.6 "není platná hodnota pro int je platný, ale decimal.

Příklad

Následující příklady ukazují, jak používat TryParse s vyjádření řetězce z long, byte, a decimal hodnoty.


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é zavést Parse statickou metodu, která vyvolá výjimku, pokud řetězec není platné číslo.TryParseje obvykle efektivnější, protože pouze vrátí hodnotu false, pokud číslo není platné.

Zabezpečení

Vždy použít TryParse nebo Parse metody ověřování vstupu uživatele z ovládací prvky, například v textových polích a polích se seznamem.

Viz také

Úkoly

Jak: převést byte Array int (C# program televize)

Jak: převést řetězec na int (C# program televize)

Jak: převod mezi šestnáctkové řetězce a číselné typy (Příručka programování C#)

Koncepty

Analýza číselných řetězců

Další zdroje

Typy formátování