#vb.net #visual-studio #formatting #ide #hex
#vb.net #visual-studio #форматирование #среда разработки #шестнадцатеричный
Вопрос:
Когда я записываю шестнадцатеричное значение в моем VB.NET код, я хочу, чтобы он выглядел так:
amp;H0F
(Двоичный файл: amp;B00001111
)
но вместо этого Visual Studio делает его (imo) нечитаемым, удаляя начальные 0:
amp;HF
(Двоичный файл: amp;B1111
)
Таким образом, я не могу легко понять, является ли это байтом, коротким и т. Д.
Итак, мой вопрос: есть ли в среде разработки Visual Studio параметр, который отключает эту «функцию»? Я действительно хочу сохранить эти 0.
Заранее благодарю вас!
Комментарии:
1. Разве объявление типа элемента не указывает вам тип значения? Или, например,
dim someThing1 = amp;HFL dim someThing2 = amp;HFS
. Первый длинный, другой короткий и т.д. Илиdim someThing1amp; = amp;HF dim someThing2! = amp;HF
.amp;H000000F
на самом деле не говорит, что это за тип.2. Начальный ноль не изменяет тип, поэтому он не помогает вам определить тип. Оба
amp;HF
иamp;H0F
являются типомInteger
. Единственный способ сделать его aByte
— присвоить егоByte
переменной, поэтому, как и предлагалось, вы пытаетесь заставить IDE сообщить вам что-то, что либо неверно, либо очевидно независимо.3. Я знаю это, но я лично читаю двоичные и шестнадцатеричные числа слева направо, и поэтому, если я не вижу начальных нулей, мой мозг предполагает, что это начальные цифры. Означает: мой мозг интерпретирует
amp;HF
какamp;B11110000
, для байта. Вот почему я хочу прояснить это для себя, и я обычно тоже пишу 0.4.
dim someThing as Byte = amp;HF
. Вы не можете ошибиться. Вам нужно знать, чтоsomeThing
такое (его тип), а не то, чтоamp;HF
может представлять.5.Кроме того, ясно, что отсутствующие
0
s были бы помещены слева,amp;HF000
сохраняя0
s, конечно.
Ответ №1:
В VS2017 и выше: если вы используете разделитель групп _ (символ подчеркивания), начальные нули не будут удалены редактором. Смотрите: шестнадцатеричные, двоичные и восьмеричные литералы
Обратите внимание, что разделитель групп не добавляет никакого внутреннего значения к значению; это просто бессмысленные символы форматирования. Я имею в виду, что при его оценке анализатором сохраняются только цифры. Подумайте об этом, поскольку все «_» удаляются из строки перед оценкой. Итак, amp;B1_1_1_1
это то же amp;B1________________1_1_1
самое, что и .
Некоторые примеры:
Dim b As Byte
b = amp;B0000_1111
b = amp;B0_0_0_0_1_1_1_1
b = amp;H0_F
Комментарии:
1. Все еще очень некрасиво, но полезно. Спасибо!