ULong.MaxValue 的数值在 Visual Basic.NET 中被认为是溢出

Numeric value of ULong.MaxValue is considered an overflow in Visual Basic.NET

在视觉中 Basic.NET ULong.MaxValue=18,446,744,073,709,551,615.

以下代码运行良好:

Dim a As ULong = ULong.MaxValue

下面的代码returns数字溢出错误

Dim b As ULong = 18446744073709551615

导致此错误的原因是什么?

编译器假定任何太大而不是 Integer 的整数都是 Long,当然你的数字不适合 Long。您需要将 UL 后缀添加到文字数字以表明它是 ULong 而不仅仅是 Long

Dim b As ULong = 18446744073709551615UL