VB.Net 关于类型关键字加方括号进行转义Dim As [String]的总结

看到帖子《Dim s1 As [String]和Dim s1 As String之间什么区别》的提问,专门做了测试,总结如下。

一、本来用方括号转义名称是为了类似下面这样的用法
1)把关键字作为类型。
2)把关键字作为变量。

Module Module1

    Private Enum [String]
        ASCII
        Unicode
    End Enum

    Dim s As [String] = [String].Unicode

    Dim [As] As Integer = 0

End Module


二、当 As 后面出现类型关键字加方括号的转义,并且这个转义类型没有在前面定义过时:
A)标准的 CLR 类型会自动解释为原始的类型(当作方括号不存在)。
B)而 VB.Net 的特有类型会报错。

根据《数据类型摘要 (Visual Basic)》,把基本类型都转义了一下,测试代码如下:

Module Module2

    Dim a As [Char]
    Dim b1 As [DateTime],b2 As [Date]
    Dim c As [Decimal]
    Dim d As [Double]
    Dim e1 As [Int32],e2 As [Integer]
    Dim f1 As [Int64],f2 As [Long]
    Dim g As [Object]
    Dim h As [SByte]
    Dim g1 As [Int16],g2 As [Short]
    Dim i As [Single]
    Dim j As [String]
    Dim k1 As [UInt32],k2 As [UInteger]
    Dim l1 As [UInt64],l2 As [ULong]
    Dim m1 As [UInt16],m2 As [UShort]

End Module

在 Visual Studio .Net (截图)中可以看到编译错误

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...