Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Annak megállapításához, hogy a sztring egy adott numerikus típus érvényes ábrázolása-e, használja a statikus TryParse metódust, amelyet az összes primitív numerikus típus, valamint olyan típusok, mint a DateTime és a IPAddressimplementál. Az alábbi példa bemutatja, hogyan állapítható meg, hogy a "108" érvényes int.
int i = 0;
string s = "108";
bool result = int.TryParse(s, out i); //i now = 108
Ha a sztring nem numerikus karaktereket tartalmaz, vagy a numerikus érték túl nagy vagy túl kicsi a megadott típushoz, TryParse hamis értéket ad vissza, és nullára állítja a kimenő paramétert. Ellenkező esetben igaz értéket ad vissza, és a kimenő paramétert a sztring numerikus értékére állítja.
Megjegyzés
Egy karakterlánc tartalmazhat csak numerikus karaktereket, és mégsem érvényes arra a típusra, amelynek TryParse metódusát használja. Az "256" például nem érvényes érték a byte-hoz, de érvényes a int-hez. A "98.6" nem érvényes érték a int számára, de érvényes a decimalérték.
Példa
Az alábbi példák bemutatják, hogyan használható TryParse a long, byteés decimal értékek sztringreprezentációjával.
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");
Robusztus programozás
A primitív numerikus típusok a Parse statikus metódust is implementálják, amely kivételt jelent, ha a sztring nem érvényes szám.
TryParse általában hatékonyabb, mert csak hamis értéket ad vissza, ha a szám érvénytelen.
.NET-biztonság
Mindig használja a TryParse vagy Parse metódusokat a felhasználói bevitel ellenőrzéséhez olyan vezérlőkből, mint a szövegdobozok és a kombinált listák.