SlideShare une entreprise Scribd logo
1  sur  10
O futuro da linguagem de programação C#
(C# 7)
Rogério Moraes de Carvalho
VITA Informática
rogeriom.wordpress.com | @rogeriomc
Agenda
O futuro da linguagem de programação C# (C# 7)
Visual Studio “15” Preview 2
Literais binários
Separadores de dígitos
Tuplas
Referências locais
Funções locais
Correspondência de padrão
Informações adicionais
Visual Studio “15” Preview 2
O Preview 2 foi liberado em 10 de maio de 2016
www.visualstudio.com/downloads/visual-studio-next-downloads-vs (Download)
www.visualstudio.com/en-us/news/releasenotes/vs15-relnotes (Notas da versão)
Ativação de características experimentais do compilador C#
Demo 1: Acréscimo de símbolos de compilação condicional: __DEMO__ e __DEMO_EXPERIMENTAL__
Literais binários
Representação de literais numéricos na base binária (2)
Sintaxe: 0bbn...b3b2b1 ou 0Bbn...b3b2b1, com b1, b2, b3, ..., bn  {0, 1} e n  1
[Flags]
public enum Assuntos {
AspNetCore = 0b00000001, // 1
DotNetCore = 0b00000010, // 2
EntityFrameworkCore = 0b00000100, // 4
FrameworksCore = 0b00000111, // 7
Conteiner = 0b00001000, // 8
IoT = 0b00010000, // 16
Azure = 0b00100000 // 32
}
Demo 2: Uso de literais binários numa enumeração com o atributo Flags
Separadores de dígitos
Separação de dígitos em literais com o caractere _
Exemplos: 0b0100_0111, 1_928_345, 0xF0_A8_D4_1A
[Flags]
public enum Assuntos {
AspNetCore = 0b0000_0001, // 1
DotNetCore = 0b0000_0010, // 2
EntityFrameworkCore = 0b0000_0100, // 4
FrameworksCore = 0b0000_0111, // 7
Conteiner = 0b0000_1000, // 8
IoT = 0b0001_0000, // 16
Azure = 0b0010_0000 // 32
}
Demo 3: Uso de separadores de dígitos em literais binários numa enumeração com o atributo Flags
Tuplas
Tipos tupla têm uma sintaxe similar a listas de parâmetros
A sintaxe (string trilha, int numeroPalestras) indica um tipo de
estrutura anônima com dois campos públicos: trilha do tipo string e
numeroPalestras do tipo int
public static IEnumerable<(string trilha, int numeroPalestras)>
PalestrasPorTrilha(this IEnumerable<Palestra> palestras) {
return from palestra in palestras
group palestra by palestra.Trilha into g
orderby g.Count() descending, g.Key
select (g.Key, g.Count());
}
Demo 4: Uso de tuplas no tipo de retorno de um método
Referências locais
Para permitir o uso de referências em variáveis locais
int a = 1;
ref int b = ref a;
Console.WriteLine($"a = {a}, b = {b}"); // a = 1, b = 1
a = 2;
Console.WriteLine($"a = {a}, b = {b}"); // a = 2, b = 2
Demo 5: Referências locais
Funções locais
Funções que são declaradas e utilizadas dentro de um membro de
função
static void Main(string[] args)
{
void imprimirPalestras(IEnumerable<Palestra> palestras)
{
foreach (var palestra in palestras) {
Console.WriteLine(palestra);
}
}
imprimirPalestras(obterPalestras());
}
Demo 6: Funções locais
Correspondência de padrão
Permite, por exemplo, o teste de um tipo e armazenamento do tipo
convertido numa variável
Palestra primeiraPalestra = obterPalestras().First();
if (primeiraPalestra is PalestraEmTrilha primeiraPalestraEmTrilha) {
Console.WriteLine(primeiraPalestraComTrilha.Trilha);
}
Demo 7: Correspondência de padrão
Informações adicionais
Language Feature Status (GitHub)
github.com/dotnet/roslyn/blob/future/docs/Language%20Feature%20Status.md
C# 7 Work List of Features (GitHub)
github.com/dotnet/roslyn/issues/2136
Build 2016 – The Future of C# (Channel 9)
channel9.msdn.com/Events/Build/2016/B889
C# 7 and Beyond with Mads Torgersen (InfoQ)
www.infoq.com/news/2016/06/csharp-mads-torgersen-qcon

Contenu connexe

En vedette

TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negóciostdc-globalcode
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureLuciano Condé
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinkingtdc-globalcode
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarialtdc-globalcode
 
TDC2016SP - Internet das Coisas
TDC2016SP - Internet das CoisasTDC2016SP - Internet das Coisas
TDC2016SP - Internet das Coisastdc-globalcode
 
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hat
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red HatTDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hat
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hattdc-globalcode
 
TDC2016SP - Fillas com php
TDC2016SP - Fillas com phpTDC2016SP - Fillas com php
TDC2016SP - Fillas com phptdc-globalcode
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarialtdc-globalcode
 
TDC2016SP - Do Gameboy ao Zend Engine e avante!
TDC2016SP - Do Gameboy ao Zend Engine e avante!TDC2016SP - Do Gameboy ao Zend Engine e avante!
TDC2016SP - Do Gameboy ao Zend Engine e avante!tdc-globalcode
 
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...tdc-globalcode
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC FlorianópolisMarcelo Quinta
 

En vedette (20)

TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de NegóciosTDC2016SP - Trilha Análise de Negócios
TDC2016SP - Trilha Análise de Negócios
 
TDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows AzureTDC 2012 - Visão Geral do Windows Azure
TDC 2012 - Visão Geral do Windows Azure
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Design Thinking
TDC2016SP - Design ThinkingTDC2016SP - Design Thinking
TDC2016SP - Design Thinking
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarial
 
TDC2016SP - Internet das Coisas
TDC2016SP - Internet das CoisasTDC2016SP - Internet das Coisas
TDC2016SP - Internet das Coisas
 
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hat
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red HatTDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hat
TDC2016SP - Novas Oportunidades para o .NET com a parceria Microsoft e Red Hat
 
TDC2016SP - Fillas com php
TDC2016SP - Fillas com phpTDC2016SP - Fillas com php
TDC2016SP - Fillas com php
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarial
 
TDC2016SP - Do Gameboy ao Zend Engine e avante!
TDC2016SP - Do Gameboy ao Zend Engine e avante!TDC2016SP - Do Gameboy ao Zend Engine e avante!
TDC2016SP - Do Gameboy ao Zend Engine e avante!
 
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...
TDC2016SP - O Smart Grid: A Rede Elétrica nas Smart Cities - Estudo de Caso d...
 
iOS no TDC Florianópolis
iOS no TDC FlorianópolisiOS no TDC Florianópolis
iOS no TDC Florianópolis
 

Plus de tdc-globalcode

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadetdc-globalcode
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...tdc-globalcode
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucessotdc-globalcode
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPAtdc-globalcode
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinotdc-globalcode
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...tdc-globalcode
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicestdc-globalcode
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publicatdc-globalcode
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#tdc-globalcode
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocustdc-globalcode
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?tdc-globalcode
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golangtdc-globalcode
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QAtdc-globalcode
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciatdc-globalcode
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Servicetdc-globalcode
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETtdc-globalcode
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8tdc-globalcode
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...tdc-globalcode
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#tdc-globalcode
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Coretdc-globalcode
 

Plus de tdc-globalcode (20)

TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidadeTDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
 
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de SucessoTDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
 
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPATDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
 
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVinoTDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
 
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
 
TDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devicesTDC2019 Intel Software Day - Inferencia de IA em edge devices
TDC2019 Intel Software Day - Inferencia de IA em edge devices
 
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca PublicaTrilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
 
Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#Trilha .Net - Programacao funcional usando f#
Trilha .Net - Programacao funcional usando f#
 
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case EasylocusTDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Go - Case Easylocus
 
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
 
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em GolangTDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - Clean architecture em Golang
 
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QATDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
 
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendenciaTDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
 
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR ServiceTDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
 
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NETTDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
 
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
 
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
 
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - .NET funcional com F#
 
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net CoreTDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor  em .Net Core
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
 

Dernier

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 

Dernier (20)

Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 

TDC2016SP - O futuro da linguagem de programação C# (C# 7)

  • 1. O futuro da linguagem de programação C# (C# 7) Rogério Moraes de Carvalho VITA Informática rogeriom.wordpress.com | @rogeriomc
  • 2. Agenda O futuro da linguagem de programação C# (C# 7) Visual Studio “15” Preview 2 Literais binários Separadores de dígitos Tuplas Referências locais Funções locais Correspondência de padrão Informações adicionais
  • 3. Visual Studio “15” Preview 2 O Preview 2 foi liberado em 10 de maio de 2016 www.visualstudio.com/downloads/visual-studio-next-downloads-vs (Download) www.visualstudio.com/en-us/news/releasenotes/vs15-relnotes (Notas da versão) Ativação de características experimentais do compilador C# Demo 1: Acréscimo de símbolos de compilação condicional: __DEMO__ e __DEMO_EXPERIMENTAL__
  • 4. Literais binários Representação de literais numéricos na base binária (2) Sintaxe: 0bbn...b3b2b1 ou 0Bbn...b3b2b1, com b1, b2, b3, ..., bn  {0, 1} e n  1 [Flags] public enum Assuntos { AspNetCore = 0b00000001, // 1 DotNetCore = 0b00000010, // 2 EntityFrameworkCore = 0b00000100, // 4 FrameworksCore = 0b00000111, // 7 Conteiner = 0b00001000, // 8 IoT = 0b00010000, // 16 Azure = 0b00100000 // 32 } Demo 2: Uso de literais binários numa enumeração com o atributo Flags
  • 5. Separadores de dígitos Separação de dígitos em literais com o caractere _ Exemplos: 0b0100_0111, 1_928_345, 0xF0_A8_D4_1A [Flags] public enum Assuntos { AspNetCore = 0b0000_0001, // 1 DotNetCore = 0b0000_0010, // 2 EntityFrameworkCore = 0b0000_0100, // 4 FrameworksCore = 0b0000_0111, // 7 Conteiner = 0b0000_1000, // 8 IoT = 0b0001_0000, // 16 Azure = 0b0010_0000 // 32 } Demo 3: Uso de separadores de dígitos em literais binários numa enumeração com o atributo Flags
  • 6. Tuplas Tipos tupla têm uma sintaxe similar a listas de parâmetros A sintaxe (string trilha, int numeroPalestras) indica um tipo de estrutura anônima com dois campos públicos: trilha do tipo string e numeroPalestras do tipo int public static IEnumerable<(string trilha, int numeroPalestras)> PalestrasPorTrilha(this IEnumerable<Palestra> palestras) { return from palestra in palestras group palestra by palestra.Trilha into g orderby g.Count() descending, g.Key select (g.Key, g.Count()); } Demo 4: Uso de tuplas no tipo de retorno de um método
  • 7. Referências locais Para permitir o uso de referências em variáveis locais int a = 1; ref int b = ref a; Console.WriteLine($"a = {a}, b = {b}"); // a = 1, b = 1 a = 2; Console.WriteLine($"a = {a}, b = {b}"); // a = 2, b = 2 Demo 5: Referências locais
  • 8. Funções locais Funções que são declaradas e utilizadas dentro de um membro de função static void Main(string[] args) { void imprimirPalestras(IEnumerable<Palestra> palestras) { foreach (var palestra in palestras) { Console.WriteLine(palestra); } } imprimirPalestras(obterPalestras()); } Demo 6: Funções locais
  • 9. Correspondência de padrão Permite, por exemplo, o teste de um tipo e armazenamento do tipo convertido numa variável Palestra primeiraPalestra = obterPalestras().First(); if (primeiraPalestra is PalestraEmTrilha primeiraPalestraEmTrilha) { Console.WriteLine(primeiraPalestraComTrilha.Trilha); } Demo 7: Correspondência de padrão
  • 10. Informações adicionais Language Feature Status (GitHub) github.com/dotnet/roslyn/blob/future/docs/Language%20Feature%20Status.md C# 7 Work List of Features (GitHub) github.com/dotnet/roslyn/issues/2136 Build 2016 – The Future of C# (Channel 9) channel9.msdn.com/Events/Build/2016/B889 C# 7 and Beyond with Mads Torgersen (InfoQ) www.infoq.com/news/2016/06/csharp-mads-torgersen-qcon

Notes de l'éditeur

  1. Visual Studio “15” Preview 2 https://blogs.msdn.microsoft.com/visualstudio/2016/05/10/visual-studio-15-preview-2/
  2. Proposal: Binary literals #215 https://github.com/dotnet/roslyn/issues/215
  3. Proposal: Digit separators #216 https://github.com/dotnet/roslyn/issues/216
  4. Proposal: Language support for Tuples #347 https://github.com/dotnet/roslyn/issues/347
  5. Proposal: Ref Returns and Locals #118 https://github.com/dotnet/roslyn/issues/118
  6. Local functions (Proposal: #259) [currently in future branch] https://github.com/dotnet/roslyn/issues/259
  7. Pattern Matching for C# https://github.com/dotnet/roslyn/blob/future/docs/features/patterns.md