Globalcode – Open4education
.NET – Novidades do C# 6
Vinicius Mussak
MSP – MCP
Globalcode – Open4education
Quem sou eu?
Francano
Estudante de Sistemas de Informação
Desenvolvedor de soluções/bugs na EngSolutions
Microsoft Student Partner
Microsoft Certified Professional
Globalcode – Open4education
EngSolutions
Globalcode – Open4education
Agenda
Novidades do Visual
Studio 2015
Debug de expressões
lambda
NuGet package manager
Novidades do C# 6
Using static
Auto-property initializers
Expression-bodied members
Null-conditional operator
String interpolation
Exception filters
Operador nameof
Chamadas assíncronas em
blocos try-catch-finally
Globalcode – Open4education
Visual Studio
Globalcode – Open4education
Expressões lambda
Globalcode – Open4education
NuGet
Globalcode – Open4education
Using static
Sem C# 6 Com C# 6
using System;
Math.Pow(10, 20);
ClasseEstatica.Metodo();
using static System.Math;
Pow(10, 20);
Metodo();
Globalcode – Open4education
Auto-property initializers
Sem C# 6
Com C# 6
public string Cidade { get; set; } = "Porto Alegre";
ConstrutorDaSuaClasse()
{
Cidade = "Porto Alegre";
}
public string Cidade { get; set; }
Globalcode – Open4education
Expression-bodied members
Sem C# 6
Com C# 6
public string NomeCompleto => Nome + " " + Sobrenome;
public string NomeCompleto
{
get { return Nome + " " + Sobrenome; }
}
public string Nome { get; set; }
public string Sobrenome { get; set; }
Globalcode – Open4education
Null-conditional operator
Sem C# 6
Com C# 6
return bairro.Cidade?.Nome;
return bairro.Cidade != null
? bairro.Cidade.Nome
: string.Empty;
public class Bairro
{
public Cidade Cidade { get; set; }
}
Globalcode – Open4education
String interpolation
Sem C# 6
Com C# 6
var x = nome + ", " + idade + " anos";
var y = string.Format("{0:000.000.000-00}", cpf);
long cpf = 18312864326;
string nome = "Zézinho da Silva";
byte idade = 15;
var x = $"{nome}, {idade} anos";
var y = $"CPF: {cpf:000.000.000-00}";
Globalcode – Open4education
Exception filters
Sem C# 6
Com C# 6
catch(Exception ex)
{
if (Debugger.IsAtached)
Console.WriteLine(ex.Message);
else
Console.WriteLine("Ocorreu um erro :(");
}
catch(Exception ex) when (Debugger.IsAtached)
{
Console.WriteLine(ex.Message);
}
catch(Exception)
{
Console.WriteLine("Ocorreu um erro :(");
}
Globalcode – Open4education
Operador nameof
Sem C# 6
Com C# 6
nameof(nomeDaVariavel);
var nomeDaVariavel = "Qualquer coisa";
static string GetName(Expression<Func<T>> expr)
{
return ((MemberExpression)expr.Body).Member.Name;
}
GetName(() => nomeDaVariavel);
Globalcode – Open4education
Chamadas assíncronas em
blocos try-catch-finally
public static async void MetodoQualquer()
{
try
{
throw new Exception();
}
catch (Exception)
{
await TestAsync();
}
finally
{
await TestAsync();
}
}
Globalcode – Open4education
Dúvidas?
Globalcode – Open4education
Obrigado!
viniciusmussak.net
github.com/vmussak
br.linkedin.com/in/viniciusmussak
twitter.com/viniciusmussak
facebook.com/ViniciusMussak

Novidades do C#6