Boolean和[Boolean]有什么区别?

Nib*_*Pig 4 vb.net identifier

我通过C#到VB的自动翻译器运行了一些代码,它翻译了一些这样的代码:

Public Property Title As [String]
Run Code Online (Sandbox Code Playgroud)

这有什么不同

Public Property Title As String
Run Code Online (Sandbox Code Playgroud)

为什么两者都存在?

Meh*_*ari 12

String是一个关键字.如果要将关键字用作标识符,则必须将其括在括号中.[String]是一个标识符.String关键字始终引用System.String类,同时[String]可以引用String当前命名空间中指定的自己的类.假设你有Imports System,大多数时候都指的是同一个东西,但它们可能是不同的:

Module Test
    Class [String]
    End Class
    Sub Main()
        Dim s As String = "Hello World"        // works
        Dim s2 As [String] = "Hello World"     // doesn't work
    End Sub
End Module
Run Code Online (Sandbox Code Playgroud)

[ ]将关键字视为标识符的主要原因是与其他语言的库的互操作性,这些库可能使用VB关键字作为类型或成员名称.