我用自动翻译器将一些C#代码翻译成了VB代码,其中有一段代码被翻译成了如下形式:
Public Property Title As [String]
这与何不同?
Public Property Title As String
为什么两者都存在?
我用自动翻译器将一些C#代码翻译成了VB代码,其中有一段代码被翻译成了如下形式:
Public Property Title As [String]
Public Property Title As String
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
< p >将关键字视为标识符的主要存在原因是与其他语言的库进行互操作性,这些库可能将VB关键字用作类型或成员名称。
[] 允许您将 VB 的关键字用作标识符,就像 C# 中的 @ 一样。但在这里它是无用的。
Dim [String] as String
编辑:
(*) 除非他们定义了自己的类叫做[String]
,那么他们可能指的是这个类。