O documento apresenta as principais novidades do C# 6, incluindo using static, auto-property initializers, expression-bodied members, null-conditional operator, string interpolation, exception filters e operador nameof. O palestrante também discute chamadas assíncronas em blocos try-catch-finally e demonstra essas funcionalidades comparando códigos com e sem o C# 6.
2. 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
8. 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();
9. 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; }
10. 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; }
11. 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; }
}
12. 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}";
13. 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 :(");
}
14. 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);