novidades do c#6

17
Globalcode – Open4education .NET – Novidades do C# 6 Vinicius Mussak MSP – MCP

Upload: vinicius-mussak

Post on 12-Apr-2017

110 views

Category:

Technology


1 download

TRANSCRIPT

Globalcode – Open4education

.NET – Novidades do C# 6Vinicius 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# 6Using 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);

elseConsole.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