Please note that is 1 << 63not ulongor even long. The compiler interprets it as int. Take a look at the following example:
enum TransactionData : long
{
None = 0,
Color1 = 1 << 31,
Color2 = 1 << 63,
}
Console.WriteLine(TransactionData.Color1 == TransactionData.Color2); // True
ulong, ul :
enum TransactionData : ulong
{
None = 0,
Color1 = 1ul << 63,
}
L, L 1. , , .
, , 1ul << 63 64 ( , 63 ).