当前位置:  开发笔记 > 编程语言 > 正文

VB.NET中"Byte"数字常量的后缀(类型字符)是什么?

如何解决《VB.NET中"Byte"数字常量的后缀(类型字符)是什么?》经验,为你挑选了3个好方法。

只是出于好奇:

我知道我可以告诉编译器我是否希望将某个值解释为某个数字类型,例如Integer(32位有符号),这样就可以将"I"(类型字符)附加到常量值:

Private Function GetTheAnswerAsInteger() As Integer

   Return 42I

End Function

对于Short,还有"S",对于Decimal也有"D"等.

但是Byte后缀是什么?提示:这不是明显的"B"......



1> Jon Skeet..:

没有一个.如果需要区分常量的整数和字节(例如调用适当的重载),则需要进行强制转换.

(顺便说一下,在C#中也是如此.)

MSDN提供确认:

字节没有文字类型字符或标识符类型字符.

还有一个类型字符和文字后缀列表.


可怜的小字节,甚至没有文字型字符...... ;-)

2> Erti-Chris E..:

因此,我们去年秋天在VB中添加了二进制文字,并得到了早期测试人员的类似反馈.我们决定为VB添加字节后缀.我们选择了SB(用于有符号字节)和UB(用于无符号字节).它不仅仅是B和SB的原因是双重的.

一,B后缀是不明确的,如果你用十六进制写(0xFFB是什么意思?),即使我们有一个解决方案,或者另一个字符而不是'B'(考虑'Y',F#使用它)no我们可以记住默认值是有符号还是无符号 - 默认情况下.NET字节是无符号的,因此选择B和SB是有意义的,但是所有其他后缀都是默认签名的,因此它与其他类型的后缀一致,以便选择B和UB.最后,我们选择了明确的SB和UB. - Anthony D. Green,

https://roslyn.codeplex.com/discussions/542111

它已经集成到即将发布的VB.NET版本中,这就是它的工作方式:

Public Const MyByte As Byte = 4UB;
Public Const MyByte2 As SByte = 4SB;



3> Yuriy Galant..:

这个答案实际上并没有提供后缀,但是它尽可能接近.

如果将扩展方法定义为

Imports System.Runtime.CompilerServices

Module IntegerExtensions

     _
    Public Function B(ByVal iNumber As Integer) As Byte
        Return Convert.ToByte(iNumber)
    End Function

End Module

你可以像这样使用它:

Private Function GetTheAnswerAsByte() As Byte

   Return 42.B

End Function

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有