Back-End

5 jun, 2015

Visual Basic 14 – Novidades da nova versão: o operador NameOf

Publicidade

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:

vb_nov1431

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.