Megosztás a következőn keresztül:


Annak meghatározása, hogy egy sztring numerikus értéket jelöl-e (C# programozási útmutató)

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.

Lásd még