4-битный Enum в C # - PullRequest
       10

4-битный Enum в C #

1 голос
/ 18 октября 2010

Я знаю, что можно сделать перечисления, которые используют 64-, 32-, 16- и 8-битные значения со знаком или без знака в качестве базового типа допустимости, используя (: ulong,: uint,: ushort,: byte).Но возможно ли создать 4-битное перечисление?

(я пишу некоторый код, который будет взаимодействовать с C ++, и структура, которую я имею в C # для возвращаемого типа, имеет одно поле, которое было бы наиболее естественным, как4-битная структура.)

Ответы [ 2 ]

4 голосов
/ 18 октября 2010

Из спецификации C #:

Утвержденные типы для перечисления byte, sbyte, short, ushort, int, uint, long или ulong.

Ни один из них не является 4-битным типом. У вас будет такая же проблема на стороне C ++.

1 голос
/ 18 октября 2010

Но возможно ли создать 4-битное перечисление?

Нет, в основном потому, что это было бы неловко и медленно. И синтаксически не существует 4-битного типа для указания в качестве базового типа.

с C ++ и структурой, которую я имею в C # для возвращаемого типа, имеет одно поле, которое было бы наиболее естественным в качестве 4-битной структуры.

Я очень сомневаюсь, что C ++ может работать с битовыми полями, но это очень эффективно (за исключением, может быть, в космосе).

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

...