Почему новая функция "бинарные литералы" начинается с 0b вместо суффикса?

Следующая версия С# запланирована (апрель 2014), чтобы иметь бинарные литералы, как вы можете видеть в Язык Особенности Статус Roslyn проект.

Пример на этой странице выглядит следующим образом:

0b00000100

Итак, вы, вероятно, будете использовать вот так:

var myBynaryLiteral = 0b00000100;

Я хочу понять, почему они предпочитают префикс this с помощью 0b вместо того, чтобы использовать букву в конце, как это делали с double, float, decimal и т.д.

double a = 1d;
float b = 1f;
decimal c = 1m;

Ответ 1

Целочисленные литералы обладают двумя переменными свойствами: их типы, которые могут быть указаны с помощью суффиксов типа L или UL, и их радиусов (называемых "формами" в документации ), который может быть указан с помощью префиксов типа 0x и теперь 0b.

Указание типа всегда выполнялось через суффикс, и указание оснований всегда выполнялось через префикс, поэтому имеет смысл придерживаться одного и того же соглашения. Кроме того, вы можете комбинировать оба спецификатора.

Например:

0b00101010UL

Обозначает буквальный 42, сохраненный как unsigned long и выраженный в radix 2.