Esto no tiene la sobrecarga de expresiones regulares
double myNum = 0;
String testVar = "Not A Number";
if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}
Por cierto, todos los tipos de datos estándar, con la flagrante excepción de los GUID, admiten TryParse.
update
secretwep mostró que el valor "2345" pasará la prueba anterior como un número. Sin embargo, si necesita asegurarse de que todos los caracteres dentro de la cadena sean dígitos, entonces debe tomar otro enfoque.
ejemplo 1 :
public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
return value;
}
o si quieres ser un poco mas elegante
public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}
actualización 2 (de @stackonfire para tratar con cadenas nulas o vacías)
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;
}