Bunun normal ifade ek yükü yok
double myNum = 0;
String testVar = "Not A Number";
if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}
Bu arada, GUID'ler hariç tüm standart veri türleri, TryParse'ı destekler.
update
secretwep, "2345" değerinin yukarıdaki testi bir sayı olarak geçeceğini ortaya çıkardı. Ancak, dizedeki tüm karakterlerin rakam olduğundan emin olmanız gerekiyorsa, başka bir yaklaşım benimsenmelidir.
örnek 1 :
public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
return value;
}
ya da biraz daha süslü olmak istiyorsan
public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}
güncelleme 2 (@stackonfire'dan boş veya boş dizelerle uğraşmak için)
public Boolean IsNumber(String s) {
Boolean value = true;
if (s == String.Empty || s == null) {
value=false;
} else {
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
} return value;
}