Myers97470 Ответов: 1

Ошибка преобразования целочисленных значений в шестнадцатеричные строки


У меня есть одно текстовое поле с десятичным значением "3039".
Я хочу преобразовать этот текст в шестнадцатеричный, с шестью символами (3 байта) во второе текстовое поле или метку.

Приведенный ниже код работает:
Dim iValue as Integer = Val(TextBox1.Text)
TextBox2.Text = iValue.ToString("X6")

Но когда я пытаюсь объединить эти две строки, нижеприведенное не работает:
TextBox2.Text = Val(TextBox1.Text).ToString("X6")

Что я упускаю?
VB.Net в Visual Studio Express 2013 для рабочего стола Windows

Что я уже пробовал:

Dim iValue as Integer = Val(TextBox1.Text)
TextBox2.Text = iValue.ToString("X6")

TextBox2.Text = Val(TextBox1.Text).ToString("X6")

1 Ответов

Рейтинг:
7

Dave Kreskowiak

И ошибка, о которой вы говорите, что получаете...?

Лучше оставить эти две строки как отдельные строки кода для целей отладки. Нет никакой необходимости объединять их вообще. Ты ничего не приобретая, таким образом.

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

Кроме того, Val() устарел. Он существует только для обратной совместимости с преобразованным кодом VB6. Воспользуйся Integer.TryParse() вместо.