Dizenin sayısal bir değeri temsil edip etmediğini belirleme (C# Programlama Kılavuzu)
Bir dizenin belirtilen sayısal türün geçerli bir gösterimi olup olmadığını belirlemek için, tüm ilkel sayısal türler ve ve gibi DateTimeIPAddresstürler tarafından uygulanan statik TryParse
yöntemi kullanın. Aşağıdaki örnekte "108" değerinin geçerli bir int olup olmadığının nasıl belirlendiği gösterilmektedir.
int i = 0;
string s = "108";
bool result = int.TryParse(s, out i); //i now = 108
Dize sayısal olmayan karakterler içeriyorsa veya sayısal değer belirttiğiniz belirli bir tür için çok büyük veya çok küçükse false TryParse
döndürür ve out parametresini sıfır olarak ayarlar. Aksi takdirde true döndürür ve out parametresini dizenin sayısal değerine ayarlar.
Not
Dize yalnızca sayısal karakterler içerebilir ve yine de yöntemini kullandığınız tür TryParse
için geçerli olmayabilir. Örneğin, "256" için byte
geçerli bir değer değildir, ancak için int
geçerlidir. "98.6" için int
geçerli bir değer değildir, ancak geçerli decimal
bir değeridir.
Örnek
Aşağıdaki örneklerde , ve değerlerinin long
dize gösterimleriyle nasıl kullanılacağı TryParse
gösterilmektedir.decimal
byte
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");
Güçlü Programlama
İlkel sayısal türler, dize geçerli bir sayı değilse özel durum oluşturan statik yöntemi de uygular Parse
. TryParse
genellikle daha verimlidir çünkü sayı geçerli değilse yalnızca false döndürür.
.NET Güvenliği
Metin kutuları ve birleşik giriş kutuları gibi denetimlerden kullanıcı girişini doğrulamak için her zaman veya Parse
yöntemlerini kullanınTryParse
.