VB   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了.net – “溢出”编译器错误-9223372036854775808L大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Long data type的范围是-9223372036854775808到9223372036854775807,但以下语句生成编译器错误“BC30036:溢出”:
Dim a As Long = -9223372036854775808L

Try it online!

为什么这是一个错误?如何在代码中指定常量-9223372036854775808?

为什么这是一个错误?

编译器将表达式-9223372036854775808L解析为应用于十进制整数文字9223372036854775808L的一元减号运算符.根据VB.NET specification

和:

9223372036854775808L对于Long而言太大,因此会出现溢出错误.
(减号不是整数文字的一部分.)

如何在代码中指定常量-9223372036854775808?

要按字面指定-9223372036854775808,请使用十六进制文字:

Dim a As Long = &H8000000000000000

VB.NET规范也提到了这一点:

当然,为了清楚起见,您应该只使用Long.MinValue而不是文字:

Dim a As Long = Long.MinValue

C#怎么样?

如renéVogt指出的那样,等效语句在C#中编译得很好:

long a = -9223372036854775808L;

是因为(与VB.NET不同)C# supports this as a special case

大佬总结

以上是大佬教程为你收集整理的.net – “溢出”编译器错误-9223372036854775808L全部内容,希望文章能够帮你解决.net – “溢出”编译器错误-9223372036854775808L所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。