Udostępnij za pośrednictwem


Porady: określanie, czy ciąg reprezentuje wartość numeryczną (Przewodnik programowania w języku C#)

Aby ustalić, czy ciąg znaków jest prawidłową reprezentację określonego typu liczbowego, należy używać statycznego TryParse metodę, która jest zaimplementowana wszystkie pierwotne typy liczbowe, a także typy takich jak DateTime i IPAddress.Poniższy przykład pokazuje, jak ustalić, czy "108" jest prawidłowy int.

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

Jeśli ciąg zawiera znaki nienumeryczne lub wartość liczbowa jest zbyt duży lub zbyt mały dla określonego typu, który został określony, TryParse zwraca wartość false i ustawia parametru wyjściowego do zera.W przeciwnym razie zwraca wartość true i ustawia wartość liczbową z ciągu parametru wyjściowego.

[!UWAGA]

Ciąg może zawierać tylko znaki numeryczne i nadal nie być prawidłowe dla danego typu którego TryParse metodę, której można użyć.Na przykład, "256" nie jest prawidłową wartością dla byte , ale ważne jest, aby int. "98.6 "nie jest prawidłową wartością dla int , ale ważne jest, aby decimal.

Przykład

Następujące przykłady przedstawiają metody korzystania TryParse z ciągu znaków reprezentującego long, byte, i decimal wartości.

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

Stabilne programowanie

Pierwotny liczbowe typy również wdrożenie Parse metody statycznej, która zgłasza wyjątek, jeśli ciąg nie jest prawidłową liczbą.TryParsejest zasadniczo bardziej efektywne, ponieważ po prostu zwraca wartość FAŁSZ, jeśli liczba nie jest prawidłowy.

Zabezpieczenia

Należy zawsze używać TryParse lub Parse metod do sprawdzania poprawności danych wejściowych użytkownika z formantów, takich jak pola tekstowe i pola kombi.

Zobacz też

Zadania

Porady: konwertowanie tablicy typu Byte na liczbę całkowitą (Przewodnik programowania w języku C#)

Porady: konwertowanie ciągu na liczbę (Przewodnik programowania w języku C#)

Porady: konwertowanie ciągów szestnastkowych na typy liczbowe (Przewodnik programowania w języku C#)

Koncepcje

Analizowanie ciągów liczbowych w programie .NET Framework

Inne zasoby

Typy formatowania w programie .NET Framework