Что вы описываете как асинхронный обмен сообщениями. Microsoft уже написала приложение для этого под названием MSMQ
Попробуйте следующее:
int x = Int32.Parse(TextBoxD1.Text);
или еще лучше:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Кроме того, поскольку Int32.TryParse
возвращает bool
, вы можете использовать его возвращаемое значение для принятия решений о результатах попытки синтаксического анализа:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Если вам интересно, разницу между Parse
и TryParse
лучше всего резюмировать следующим образом:
Метод TryParse похож на метод Разобрать метод, кроме метода TryParse не генерирует исключение, если преобразование не удается. Это устраняет нужно использовать обработку исключений для тестирования для FormatException в событии это недействительно и не может быть успешно проанализирован. - MSDN
Convert.ToInt32( TextBoxD1.Text );
Используйте это, если вы уверены, что содержимое текстового поля является допустимым int. Более безопасный вариант -
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
. Он предоставит вам некоторое значение по умолчанию, которое вы можете использовать. Int32.TryParse
также возвращает логическое значение, указывающее, удалось ли ему выполнить синтаксический анализ, поэтому вы даже можете использовать его в качестве условия оператора if
.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int.TryParse()
Он не будет выдавать, если текст не является числовым.
int myInt = int.Parse(TextBoxD1.Text)
Другой способ:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
Разница между ними в том, что первый вызовет исключение, если значение в текстовом поле не может быть преобразовано, тогда как второй будет просто вернуть false.
Вам необходимо проанализировать строку, а также убедиться, что она действительно имеет формат целого числа.
Самый простой способ:
int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
// Code for if the string was valid
}
else
{
// Code for if the string was invalid
}
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
Оператор TryParse возвращает логическое значение, показывающее, был ли синтаксический анализ успешным или нет. Если это удалось, проанализированное значение сохраняется во втором параметре.
См. Int32.TryParse Method (String, Int32) для получения более подробной информации.
Как объяснено в документации TryParse , TryParse () возвращает логическое значение, которое указывает, что было найдено действительное число:
bool success = Int32.TryParse(TextBoxD1.Text, out val);
if (success)
{
// put val in database
}
else
{
// handle the case that the string doesn't contain a valid number
}