Вы ищете TryParse
method. Это скажет вам, может ли заданное строковое значение быть преобразовано в число. И он делает все это без каких-либо исключений.
Пример кода:
int number;
bool result = Int32.TryParse(tx.Text, out number);
if (result)
{
// Conversion to a number was successful.
// The number variable contains your value.
}
else
{
// Conversion to a number failed.
// The value entered in the textbox is not numeric.
}
Но если вы хотите, чтобы ограничить диапазон входного текстового поля (т.е. предотвратить потребителя от входа ничего, кроме цифр), это не правильный способ пойдите об этом.
Вместо этого вы должны использовать другое управление, например NumericUpDown
control, или MaskedTextBox
control. Это позволяет вам не допускать ввода пользователем недопустимого ввода, что намного удобнее, чем показывать ошибку после факта.
В ответ на ваш комментарий:
в Java вы имеете InstanceOf ключевое слово для проверки типа объекта. например: - Obj InstanceOf Integer ... Как проверить для объекта типа в C#
C# имеет ключевое слово typeof
, но это не поможет вам здесь. Проблема в том, что объект, который вы проверяете , является экземпляром типа String
. Свойство Text
TextBox
класс всегда возвращает объект типа String
. Это не VB 6: здесь нет Variants
. Что вы проверяете, так это то, что значение String
может быть преобразованным в эквивалентное интегральное представление.
Исследовать [ 'метод TryParse'] (http://msdn.microsoft.com/en-us/library/c846ws90.aspx). Это скажет вам, можно ли преобразовать строковое значение в число. –
В java у вас есть ключевое слово instanceof для проверки типа объекта. например: - Obj instanceof Integer ... Как вы проверяете тип объекта в C# – Aaraadhana