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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top