Там есть немного лучший способ:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), out valueParsed))
{ ... }
При попытке разобрать текст, и он не может быть разобрано, метод Int32.Parse сгенерирует исключение. Я думаю, вам лучше использовать метод TryParse, который будет захватывать исключение и сообщить вам как логическое, если бы возникло какое-либо исключение.
Существует множество осложнений при анализе текста, который принимает Int32.Parse. Глупо дублировать усилия. Таким образом, это, скорее всего, подход, сделанный VN's IsNumeric. Вы также можете настроить правила синтаксического анализа через перечисление NumberStyles, чтобы разрешить шестнадцатеричный, десятичный, валютный и несколько других стилей.
Другим распространенным подходом для приложений, не относящихся к веб-интерфейсу, является ограничение ввода текстового поля, чтобы принимать только символы, которые будут обрабатываться в виде целого числа.
EDIT: Вы можете принять большее разнообразие входных форматов, таких как денежные ценности ("$ 100") и показателей ("1E4"), указав конкретные NumberStyles:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), NumberStyles.AllowCurrencySymbol | NumberStyles.AllowExponent, CultureInfo.CurrentCulture, out valueParsed))
{ ... }
... или позволяя любой вид поддерживаемого форматирования:
int valueParsed;
if(Int32.TryParse(txtMyText.Text.Trim(), NumberStyles.Any, CultureInfo.CurrentCulture, out valueParsed))
{ ... }
Похоже, что это, вероятно, будет лучшим вариантом, там, спасибо .... – user1202606
'TryParse 'метод не даст те же результаты, что и' IsNumeric'. – phoog