Qual é a diferença entre booleano e [booleano]?
-
24-09-2019 - |
Pergunta
Eu executei algum código através de um tradutor automático para C# para VB, e ele traduziu algum código como este:
Public Property Title As [String]
Como isso é diferente de
Public Property Title As String
E por que ambos existem?
Solução
String
é uma palavra -chave. Se você deseja usar uma palavra -chave como identificador, precisará envolvê -la entre colchetes. [String]
é um identificador. String
palavra -chave sempre se refere a System.String
classe enquanto [String]
pode se referir à sua própria classe nomeada String
no espaço de nome atual. Assumindo que você tem Imports System
, ambos se referem à mesma coisa na maioria das vezes, mas eles posso ser diferente:
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
A principal razão para a existência de [ ]
Para o tratamento de palavras -chave como identificadores, é a interoperabilidade com bibliotecas de outros idiomas que podem usar palavras -chave VB como nomes de tipo ou membro.
Outras dicas
] permite que você use palavras -chave VBS como identificadores, assim como @ em C#. É inútil aqui.
Nesse exemplo, eles não fazem nada. (*) Você pode usar colchetes para usar palavras reservadas como identificadores. Por exemplo: Dim [String] as String
Editar: (*) a menos que eles tenham definido sua própria classe chamada [String]
que eles poderiam estar se referindo a