【发布时间】:2014-03-12 22:49:05
【问题描述】:
编译但不应该
[Flags]
enum TransactionData : long // 64 bits. Last bit is sign bit, but I'm putting data there
{
None = 0,
Color1 = 1 << 63,
}
错误但不应该
[Flags]
enum TransactionData : ulong // 64 bits. No sign bit. Not allowed to put data there
{
None = 0,
Color1 = 1 << 63,
}
编译器错误文本:
-2147483648 无法转为ulong
问题:
我预计会发生相反的情况。谁能解释这是为什么?
另外,我如何将此标志属性打印到byte[] 以供检查?
var eee = TransactionData.None | TransactionData.Color1
// How do I convert eee to byte[]?
【问题讨论】:
标签: c# compiler-construction enums visual-studio-2013 enum-flags