Неожиданное поведение между [флагами] enum: long vs [flags] enum: ulongC#

Место общения программистов C#
Ответить
Anonymous
 Неожиданное поведение между [флагами] enum: long vs [flags] enum: ulong

Сообщение Anonymous »

компилируется, но не должен < /strong> < /p>

[Flags]
enum TransactionData : long // 64 bits. Last bit is sign bit, but I'm putting data there
{
None = 0,
Color1 = 1

ошибки, но не должны < /strong> < /p>

[Flags]
enum TransactionData : ulong // 64 bits. No sign bit. Not allowed to put data there
{
None = 0,
Color1 = 1

Текст ошибки компилятора: < /p>


-2147483648 не может быть преобразован в Ulong < /p>
< /blockquote>

Вопрос: < /strong> < /p>

Я ожидаю противоположный для возникновения. Кто -нибудь может объяснить, почему это? < /p>

Также как я могу распечатать этот атрибут флагов на байт [] < /code> для проверки? < /p>

var eee = TransactionData.None | TransactionData.Color1
// How do I convert eee to byte[]?


Подробнее здесь: https://stackoverflow.com/questions/223 ... enum-ulong
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»