Visual Basic 14 - Novidades da nova versão :  Interpolação de strings


 Este artigo faz parte de uma série de artigos 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 novo recurso para interpolação de strings.

Recursos usados:

Melhorando a experiência de codificação :  A interpolação de strings

Para realizar a interpolação de strings nas versões anteriores do Visual Studio podemos usar String.Format ou o operador & para concatenar strings.

Assim, na versão do Visual Studio 2013, podemos usar String.Format e o operador &, para realizar a seguinte interpolação :

É assim que String.Format funciona e é assim que fazíamos para realizar a interpolação de strings.

Veja como ficou na versão 2015 (ainda na versão CTP) usando o recurso $ :

O resultado final é o mesmo, mas comparando a sintaxe usando String.Format (e a concatenação com o operador &) com sintaxe usando $, concluímos que ficou mais fácil digitar e entender :

  VB 12 - VS 2013
   
   Dim url_2013 = String.Format("http://{0}/{1}?versao={2}", site, path, versao)
   ou
   Dim url_2013_2 = "http://" & site & "/" & path & "?" & "versao=" & versao
  VB 14 - VS 2015

   Dim url_2015 = $"http://{site}/{path}?versao={versao}"	

Nota: Eu poderia também usar a concatenação de strings conforme mostrado acima.

Usando um exemplo mais complexo e comparando as sintaxes usadas no VS 2013 e no VS 2015 temos :


   VB 12 - VS 2013
   String.Format
 Dim x = String.Format("Robot {1} reporting{0}  {3} levels are {2}{0}" &
            "{5} levels are {4}",
             vbCrLf, name, coolant.name, coolant.level,
             reactor.name, reactor.level)
  VB 12 - VS 2013
   Operador
&
   
 Dim z = "Robot " & name & " reporting " & vbCrLf &
              "  " & coolant.name & "levels are " & coolant.value &
              "  " & reactor.name & " levels are " & reactor.value
  VB 14 - VS 2015

 Dim y = $"Robot {name} reporting
             {coolant.name} levels are {coolant.level}
             {reactor.name} levels are {reactor.level}"

Exemplo retirado de : https://roslyn.codeplex.com/discussions/540869

Assim, a nova versão é uma substituição completa de String.Format, com a cultura e tudo, para resolver a bagunça que você encontra quando existem muitos argumentos posicionais.

Além disso ela fornece uma maneira rápida de fazer a concatenação invariant-culture para uso na composição de strings para passar para outras APIs.

Com isso podemos ensinar a concatenação de strings para iniciantes sem ter que abordar a verborrágica sintaxe de String.Format.

Verifique o recurso em seu próprio código e imagine as possibilidades. Codificar vai ficar mais fácil e intuitivo.

Mas faço-vos saber, irmãos, que o evangelho que por mim foi anunciado não é segundo os homens.
Porque não o recebi, nem aprendi de homem algum, mas pela revelação de Jesus Cristo.

Gálatas 1:11-12
Mas faço-vos saber, irmãos, que o evangelho que por mim foi anunciado não é segundo os homens.
Porque não o recebi, nem aprendi de homem algum, mas pela revelação de Jesus Cristo.

Gálatas 1:11-12

Mas faço-vos saber, irmãos, que o evangelho que por mim foi anunciado não é segundo os homens.
Porque não o recebi, nem aprendi de homem algum, mas pela revelação de Jesus Cristo.

Gálatas 1:11-12

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti