Hay una forma un poco mejor:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), out valueParsed))
{ ... }
Si intenta analizar el texto y que no se puede analizar, el método Int32.Parse lanzará una excepción. Creo que es mejor para ti usar el método TryParse que capturará la excepción y te avisará como booleano si se encuentra alguna excepción.
Hay muchas complicaciones en el análisis de texto que Int32.Parse tiene en cuenta. Es tonto duplicar el esfuerzo. Como tal, este es muy probablemente el enfoque adoptado por IsNumeric de VB. También puede personalizar las reglas de análisis a través de la enumeración NumberStyles para permitir hex, decimal, moneda y algunos otros estilos.
Otro enfoque común para las aplicaciones que no están basadas en la web es restringir la entrada del cuadro de texto para que solo acepte caracteres que se puedan analizar en un entero.
EDIT: Puede aceptar una mayor variedad de formatos de entrada, tales como los valores del dinero ("$ 100") y exponentes ("1E4"), especificando los NumberStyles específicos:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), NumberStyles.AllowCurrencySymbol | NumberStyles.AllowExponent, CultureInfo.CurrentCulture, out valueParsed))
{ ... }
... o permitiendo cualquier tipo de formato soportado:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), NumberStyles.Any, CultureInfo.CurrentCulture, out valueParsed))
{ ... }
Parece que este sería probablemente la mejor opción que hay, gracias .... – user1202606
El 'TryParse 'método no dará los mismos resultados que' IsNumeric'. – phoog