Este artigo faz parte de uma série onde eu mostro as novidades do Visual Basic 14, a nova versão do Visual Basic .NET, que fará parte do Visual Studio 2015.
O Visual Basic 14 é a mais nova versão do Visual Basic ou VB .NET, e será lançado como parte do Visual Studio 2015. Esta versão foi reescrita do zero em cerca de 1,3 milhões de linhas de código e, segundo a Microsoft, a equipe aproveitou para reescrever a repensar todas as partes do Visual Basic.
No primeiro artigo eu abordei o tópico: Visual Basic 14 – Novidades da nova versão – I: Refatoração embutida. Hoje veremos o operador NameOf.
Recursos usados:
- Visual Studio CTP 6 (poderá sofrer alterações até a release final.)
Melhorando a experiência de codificação: o operador NameOf
O operador nameof(.) tem a seguinte sintaxe: nameof (expressão). A expressão deve ter um nome e pode se referir a um único símbolo, ou um grupo de métodos ou ainda um grupo de propriedades.
Dependendo da referência do argumento, ele pode incluir membros estáticos, de instância e de extensão.
Este recurso permite ao programador usar um elemento do programa como texto.
Não podemos especificar quaisquer strings literais diretamente com o operador nameof. Ele pode ser usado para criar a expressão nameof para especificar o nome, onde a expressão pode ser um grupo de propriedades ou de métodos.
Podemos ver o intelliSence exibindo este recurso no VS 2015:
Comparando o código da versão 2015 com a versão 2013 teremos:
Visual Studio 2015:
Public Class Livro Public Shared Sub Exibir(nome As String) If (nome = Nothing) Then Throw New ArgumentNullException(NameOf(nome)) Else Console.WriteLine("Nome : " + nome) End If End Sub Private Shared Sub Main(args As String()) Livro.Exibir("Macoratti") End Sub End Class
Visual Studio 2013:
Public Class Livro Public Shared Sub Exibir(nome As String) If (nome = Nothing) Then Throw New ArgumentNullException("nome") Else Console.WriteLine("Nome : " + nome) End If End Sub Private Shared Sub Main(args As String()) Livro.Exibir("Macoratti") End Sub End Class
O operador NameOf(nome) simplesmente retorna a constante string “nome”, e faz isso em tempo de compilação. O diferencial com o uso de NameObf é que ele funciona com recursos do IDE, como Rename e Find All.
Como NameOf é uma constante, você pode usar este recurso em muitos lugares, até mesmo dentro de argumentos atributos.
Verifique o recurso em seu próprio código e imagine as possibilidades. Codificar vai ficar mais fácil e intuitivo.