只是出于好奇:
我知道我可以告诉编译器我是否希望将一个值解释为某种数字类型,例如整数(32 位有符号),这样可以将“I”(类型字符)附加到常量值:
Private Function GetTheAnswerAsInteger() As Integer
Return 42I
End Function
还有“S”表示短,“D”表示小数等。
但是Byte 的后缀是什么?提示:这不是明显的“B”...
因此,我们去年秋天在 VB 中添加了二进制文字,并从早期测试人员那里得到了类似的反馈。我们确实决定为 VB 添加一个字节后缀。我们选择了 SB(用于有符号字节)和 UB(用于无符号字节)。不只是 B 和 SB 的原因有两个。
第一,如果你用十六进制写,B 后缀是不明确的(0xFFB 是什么意思?),即使我们有解决方案,或者除 'B' 以外的其他字符(考虑了'Y',F# 使用这个)没有可以记住默认值是有符号还是无符号 - .NET 字节默认是无符号的,因此选择 B 和 SB 是有意义的,但所有其他后缀默认情况下都是有符号的,因此它与选择 B 和的其他类型后缀一致UB。最后,我们选择了明确的 SB 和 UB。——安东尼·D·格林,
https://roslyn.codeplex.com/discussions/542111
它已集成到即将发布的 VB.NET 版本中,这就是它的工作方式:
Public Const MyByte As Byte = 4UB;
Public Const MyByte2 As SByte = 4SB;
这个答案并没有真正提供后缀,但它已经尽可能接近了。
如果您将扩展方法定义为
Imports System.Runtime.CompilerServices
Module IntegerExtensions
<Extension()> _
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
.NET 中没有字节文字。