Sdílet prostřednictvím


Postupy: Určení, zda řetězec reprezentuje číselnou hodnotu (Průvodce programováním v 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

Postupy: Převedení pole bajtů na typ int (Průvodce programováním v C#)

Postupy: Převedení řetězce na číslo (Průvodce programováním v C#)

Postupy: Převod mezi hexadecimálními řetězci a číselnými typy (Průvodce programováním v C#)

Koncepty

Analýza číselných řetězců v .NET Frameworku

Další zdroje

Typy formátování v .NET Frameworku