Среда разработки Visual Studio — удаляет заголовок 0 из моего кода

#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 . Единственный способ сделать его a Byte — присвоить его 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. Все еще очень некрасиво, но полезно. Спасибо!