Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby określić, czy ciąg jest prawidłową reprezentacją określonego typu liczbowego, należy użyć metody statycznej TryParse
, która jest implementowana przez wszystkie pierwotne typy liczbowe, a także typy, takie jak DateTime i IPAddress. W poniższym przykładzie pokazano, jak określić, czy wartość "108" jest prawidłową int.
int i = 0;
string s = "108";
bool result = int.TryParse(s, out i); //i now = 108
Jeśli ciąg zawiera znaki nieliczbowe lub wartość liczbowa jest zbyt duża lub zbyt mała dla określonego typu, TryParse
zwraca wartość false i ustawia parametr out na zero. W przeciwnym razie zwraca wartość true i ustawia parametr out na wartość liczbową ciągu.
Uwaga
Ciąg może zawierać tylko znaki liczbowe i może nadal być nieprawidłowy dla typu, którego metodę TryParse
stosujesz. Na przykład wartość "256" nie jest prawidłową wartością dla byte
, ale jest prawidłowa dla elementu int
. Wartość "98.6" nie jest prawidłowa dla int
, ale jest prawidłowa dla decimal
.
Przykład
W poniższych przykładach pokazano, jak używać TryParse
z reprezentacjami ciągów wartości long
, byte
i 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");
Niezawodne programowanie
Typy liczb pierwotnych implementują Parse
również metodę statyczną, która zgłasza wyjątek, jeśli ciąg nie jest prawidłową liczbą.
TryParse
jest ogólnie bardziej wydajny, ponieważ zwraca wartość false, jeśli liczba jest nieprawidłowa.
Zabezpieczenia platformy .NET
Zawsze korzystaj z metod TryParse
lub Parse
do weryfikacji poprawności danych wejściowych użytkownika z kontrolek, takich jak pola tekstowe i pola kombi.