Как я могу преобразовать строку в Int?

Что вы описываете как асинхронный обмен сообщениями. Microsoft уже написала приложение для этого под названием MSMQ

555
задан stefanobaghino 29 January 2018 в 08:42
поделиться

8 ответов

Попробуйте следующее:

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

988
ответ дан 22 November 2019 в 22:00
поделиться
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(..);
}
51
ответ дан 22 November 2019 в 22:00
поделиться
int.TryParse()

Он не будет выдавать, если текст не является числовым.

35
ответ дан 22 November 2019 в 22:00
поделиться
int myInt = int.Parse(TextBoxD1.Text)

Другой способ:

bool isConvertible = false;
int myInt = 0;

isConvertible = int.TryParse(TextBoxD1.Text, out myInt);

Разница между ними в том, что первый вызовет исключение, если значение в текстовом поле не может быть преобразовано, тогда как второй будет просто вернуть false.

19
ответ дан 22 November 2019 в 22:00
поделиться

Вам необходимо проанализировать строку, а также убедиться, что она действительно имеет формат целого числа.

Самый простой способ:

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
}
15
ответ дан 22 November 2019 в 22:00
поделиться
int x = 0;
int.TryParse(TextBoxD1.Text, out x);

Оператор TryParse возвращает логическое значение, показывающее, был ли синтаксический анализ успешным или нет. Если это удалось, проанализированное значение сохраняется во втором параметре.

См. Int32.TryParse Method (String, Int32) для получения более подробной информации.

10
ответ дан 22 November 2019 в 22:00
поделиться

Как объяснено в документации 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
}
6
ответ дан 22 November 2019 в 22:00
поделиться
int i = Convert.ToInt32(TextBoxD1.Text);
2
ответ дан 22 November 2019 в 22:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: