Fala aí galera!
Hoje vou falar um pouco sobre C#6, tem várias coisas legais que vão auxiliar e otimizar a codificação com C#, uma das mudanças é no compilador, o Roslyn que é feito em C# e além do mais é open source; um ponto positivo, é que agora podemos alterar o código, salvar, e reproduzir sem precisar parar e rodar o projeto novamente 😀
Começando com a IDE
Quem algum dia já tentou usar uma expressão lambda no Immediate Window e não conseguiu? Pois é, com o Visual Studio 2015 esse problema acabou, agora podemos debugar com expressões lambda! Veja a seguir:
Outra mudança bastante interessante foi no NuGet, que é o gerenciador de pacotes da plataforma .NET, agora podemos escolher a versão do pacote na inteface gráfica do NuGet no Visual Studio, veja:
Using Static
Outro ponto legal é que agora podemos fazer uso de uma classe estática no using, é comum usar esse tipo de classe em nosso dia-a-dia, uma classe de cálculos matemáticos por exemplo, que fará uso da biblioteca Math, com o uso do using static podemos usar um Pow(x,y) ao invés de Math.Pow(x,y). Conforme a imagem abaixo:
E podemos ver que o resultado é exatamente igual, a única diferença é a facilidade e agilidade:
Auto-Property Initializers
Nas versões anteriores à 6.0 do C#, para setar um valor default de uma propriedade de uma classe, precisávamos setar esse valor no construtor, agora podemos inicializar uma propriedade diretamente na sua declaração, na imagem a seguir, como faríamos com versões anteriores :
E agora, com o C#6, bem mais fácil né!?
Expression-bodied Members
É outro cara que veio facilitar a nossa vida! Nas versões anteriores, se precisássemos de uma propriedade somente leitura, que faz uma conta ou concatena atributos da classe, iriamos fazer um atributo somente com o get que retorna o que precisamos, mas agora, com o C#6, podemos usar uma expressão lambda, que atende a mesma necessidade só que muito melhor , o atributo “Name” é como faríamos antes do C#6, e o atributo “BodiedName” é como podemos fazer atualmente, veja:
Null-conditional operator
Mais um benefício pra salvar nossas vidas, essa cara vai nos proporcionar uma economia de linhas imensa; sabe quando precisamos acessar um atributo de um objeto, que está dentro de outro objeto? E então fazemos um if pra verificar se o objeto não é nulo pra depois acessar o atributo, pois então, não precisamos mais disso, veja como o null-conditional operator funciona, é um ponto de interrogação que facilita de mais!
String Interpolation
Finalmente, o cara que eu mais gostei, a interpolação de strings, que veio para substituir o string.Format, deixa o código mais limpo e legível, evita ficar concatenando strings, ou colocando vários índices no Format, que quando são muitos deixa o código um pouco bagunçado, veja um exemplo a seguir:
Não vou estender muito o post, pra não ficar cansativo, mas o C#6 tem ainda mais novidades, como o novo operador nameof, estruturas condicionais em instruções try-catch, propriedades só com get, são coisas bastante interessantes que vão ajudar de mais o nosso desenvolvimento.
Os exemplos de código estão disponíveis no GitHub: https://github.com/vmussak/CSharp6
Por hoje é só isso, qualquer dúvida ou sugestão, estou à disposição! Até mais 😀
Referências:
http://msdn.microsoft.com/en-us/magazine/dn683793.aspx
http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx
http://msdn.microsoft.com/en-us/magazine/dn802602.aspx
http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/116
http://blogs.msdn.com/b/csharpfaq/archive/2014/12/11/better-together-c-6-and-the-visual-studio-2015-debugger.aspx
http://blog.nuget.org/20141112/nuget-3.0-preview.html