Visual
Basic 14 - Novidades da nova versão : refatoração embutida
![]() |
Este post 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.
Para ir digerindo cada novidade eu vou escrever uma série de artigos onde vou apresentar uma novidade por artigo. Assim, com calma, você vai testando e incorporando cada novo recurso à sua experiência.
Lembrando que eu estou usando a versão Visual Studio CTP 6 que poderá sofrer alterações até a release final.
A seguir temos uma relação de alguns dos novos recursos que foram incluídos no Visual Basic:
Recurso | Exemplo | C# | VB |
---|---|---|---|
Auto-property initializers | public int X { get; set; } = x; | Added | Exists |
Getter-only auto-properties | public int Y { get; } = y; | Added | Added |
Ctor assignment to getter-only autoprops | Y = 15 | Added | Added |
Parameterless struct ctors | Structure S : Sub New() : End Sub : End Structure | Added | Added |
Using static members | using System.Console; … Write(4); | Added | Exists |
Dictionary initializer | new JObject { ["x"] = 3, ["y"] = 7 } | Added | No |
Await in catch/finally | try … catch { await … } finally { await … } | Added | No |
Exception filters | catch(E e) if (e.Count > 5) { … } | Added | Exists |
Partial modules | Partial Module M1 | N/A | Added |
Partial interfaces | Partial Interface I1 | Exists | Added |
Multiline string literals | "Hello<newline>World" | Exists | Added |
Year-first date literals | Dim d = #2014-04-03# | N/A | Added |
Line continuation comments | Dim addrs = From c in Customers ' comment | N/A | Added |
TypeOf IsNot | If TypeOf x IsNot Customer Then … | N/A | Added |
Expression-bodied members | public double Dist => Sqrt(X * X + Y * Y); | Added | No |
Null propagation | customer?.Orders?[5]?.$price | Added | Added |
String interpolation | $"{p.First} {p.Last} is {p.Age} years old." | Added* | Planned |
nameof operator | string s = nameof(Console.Write); | Added* | Planned |
#pragma | #Disable Warning BC40008 | Added | Added |
Smart name resolution | N/A | Added | |
ReadWrite props can implement ReadOnly | Exists | Added | |
#region inside methods | Exists | Added | |
Overloads inferred from Overrides | N/A | Added | |
CObj in attributes | Exists | Added | |
CRef and parameter name | Exists | Added | |
Extension Add in collection initializers | Added | Exists | |
Improved overload resolution | Added | N/A |
Recursos usados:
Melhorando a experiência de codificação : Refatoração embutida
Agora você não precisa mais adquirir pacotes de terceiros para poder realizar a refatoração diretamente no seu código. Tarefas como extrair métodos e outras refatorações estão disponíveis a um clique de mouse.
Para usar o recurso basta clicar em um identificador ou destacar um subexpressão e em seguida pressionar Ctrl+ponto(.), ou clicar com o botão direito do mouse e escolher a opção Quick Actions.
Essa ação faz com que apareça um pequeno ícone de uma luz amarela com um menu de contexto exibindo ações relevantes que você poderá efetuar no seu código.
Para testar vamos abrir o VS Studio CTP 6 e clicar em New Project;
Selecione Visual Basic e o template Windows Forms Application e informe o nome VB14_Refatoracao e clique no botão OK;
Inclua um botão de comando no formulário form1.vb e no seu evento Click defina o código para chamar o método CalculaAreaCirculo():
Selecione a variável areaCirculo e pressione CTRL+ . ou clique com o botão direito do mouse sobre a variável areaCirculo para exibir o menu suspenso e a seguir clique em Quick Actions:
![]() |
Será exibida um relação de sugestões de ações a realizar no seu código:
![]() |
Selecione a ação a efetuar e clique em Preview changes para visualizar as alterações no código:
Agora você pode aplicar a refatoração ao seu código clicando em Apply ou cancelar a operação.
Agora selecione o método CalculaAreaCirculo() e clique com o botão direito do mouse e no menu suspenso selecione a opção Rename para renomear o nome deste método:
![]() |
Clicando em Rename será aberta uma caixa no lado superior esquerdo da janela contendo as ocorrências do nome selecionado para renomear e opções para incluir comentários, strings e visualizar as alterações;
![]() |
Clicando no botão Apply (se você marcou a opção Preview changes) teremos uma visualização das alterações no código:
Novamente você confirma a operação ou cancela.
Esta opção verifica se existe outro método com o mesmo nome que você pretende usar e lhe avisa.
Agora selecione a chamada do método CalculaAreaCirculo() no evento Click do botão de comando e clique com o botão direito do mouse selecionando a seguir a opção Peek Definition:
![]() |
O código referente ao método selecionado será exibido conforme a figura abaixo:
![]() |
Verifique o recurso em seu próprio código e imagine as possibilidades. Codificar vai ficar mais fácil e intuitivo.
Disse-lhes,
pois, Jesus: Quando levantardes o Filho do homem, então conhecereis que EU SOU,
e que nada faço por mim mesmo; mas isto falo como meu Pai me ensinou.
E aquele que me enviou está comigo. O Pai não me tem deixado só, porque eu faço
sempre o que lhe agrada.
João 8:28-29
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:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
https://roslyn.codeplex.com/wikipage?title=Language%20Feature%20Status
http://blogs.msdn.com/b/vbteam/archive/2014/12/09/new-language-features-in-visual-basic-14.aspx
http://visualstudiomagazine.com/articles/2014/12/16/visual-basic-14-preview.aspx