这很好用:
Public Const test As ULong = 1 << 30
这不能很好地运作:
Public Const test As ULong = 1 << 31
它会产生此错误:
常量表达式在'ULong'
类型中无法表示
如何让它发挥作用?
这确实有效:
Public Const test As Long = 1 << 31
但我必须使用 ULong 。
答案 0 :(得分:5)
您不能使用Long数据类型转移1 << 31
,因此会出现此错误。
但是,这是因为1
作为整数文字被视为Int32,它是默认的整数文字。
你应该通过将其定义为:
来解决这个问题Public Const test As ULong = 1UL << 30
Public Const test2 As ULong = 1UL << 31
UL标志表示将1设为无符号长。 See Type characters for details
答案 1 :(得分:3)
尝试以下方法:
Public Const test As ULong = 1UL << 31
您需要明确告诉编译器您正在ULong
进行操作。
C#等效作品:
public const ulong test = 1UL << 31;