4
編譯,但不應該意外行爲:長VS [國旗]枚舉:ULONG
[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[]?
gahh ...謝謝! – LamonteCristo
有趣的是,我一直在用C#工作了8年,並剛剛學會了追加字母以將數字投射到不同類型的概念。不知道有多少人和我在同一條船上。 – LamonteCristo
你知道我怎麼能把這個ULong枚舉變成一個Byte []偶發嗎? (ps會接受你的無論在6分鐘..當超時到期 – LamonteCristo