SlideShare uma empresa Scribd logo
Introdução a C# 4.0 (Revisão) Inove Informática  Waldyr Felix
Ementa de hoje Interfaces Polimorfismo Delegates Eventos Exceptions Indexadores Enums Boxing / Unboxing Generics LINQ
Interfaces Interfaces são contratos entre camadas de um software São extremamente importantes em padrões de projeto e arquitetura de software Definem todos os membros públicos (visíveis) para o consumidor do objeto Não possuem implementação alguma É possível implementar mais de uma interface
Polimorfismo Em orientação a objetos, polimorfismo é a capacidade de tipos mais abstratos representarem comportamentos de tipos mais específicos A palavra Polimorfismo vem do grego e significa muitas formas Pode ser feito através de herança de classes base, através de generics ou por sobrecarga de métodos
Demonstração Interfaces + Polimorfismo Definindo uma interface Usando objetos através de interfaces Criando polimorfismo com interfaces
Delegates Delegates são ponteiros para métodos Podem ser usados de forma síncrona ou assíncrona São utilizados para definir métodos callbacks, retardar chamadas a métodos, passar métodos por parâmetro Não existe evento sem delegate no .Net
Eventos	 Notificam outros objetos que alguma coisa relevante aconteceu Sempre existe duas partes envolvidas ao se trabalhar com eventos O objeto notificador E o objeto que assina o evento São comumente utilizados em interfaces gráficas. Ex.: Clique de um botão Pode referenciar mais de um método ao mesmo tempo
Demonstração Delegates + Eventos  Definindo um delegate Utilizando um delegate na aplicação Criando um evento a partir de um delegate existente Notificando ações através de eventos
Exceptions Exceptions são classes especiais que servem para notificar erros em tempo de execução Todos os exceptions derivam da classe Exception Quando um exception é lançado o fluxo da aplicação é quebrado O tratamento dos exceptions pode ser feito através de blocos try...catch
Demonstração Criando o próprio Exception Lançando exceptions usando throw Tratamento de exceptions com try...catch...finally
Indexadores Quando estamos trabalhando com Arrays, Listas e Dicionários de dados usamos muito a notação lista[i], por exemplo. Os colchetes servem para capturar um dado que está em determinado índice do array. Em C# esta feature chama-se indexador ou indexer.
Exemplo de Indexador Declarando um indexador public class Pedido{    private Item[] items;    public Item this[int i]    {        get { return items[i]; }        set { items[i] = value; }    }} Usandoindexadores pedido[0] = new Item("Camisa Polo"); // usando setItem item = pedido[0];  // usando get
Enumerado São tipos de valores constante, que pertencem a um determinado intervalo São indexados a partir do zero São tipos por valor (struct) Podem ter vários tamanhos (byte, int, long,...) É mais seguro usar Enums   que constantes Deixam o código mais fácil de ler, manter e mais elegante
Exemplo de Enum public enum EstadoDoPedido : byte{    Cancelado = 1,    Atendido,    EmProcesso}
Boxing e Unboxing Boxing Tipo por valor para tipo por referência Copia os dados da memória stack para a heap Unboxing Processo inverso, tipo por referência para tipo por valor Memória heap para memória stack As duas operações geram overhead
Exemplo de Boxing e Unboxing Boxing decimal preço = 345.35m;object obj = preço; Unboxing object obj = 34;int idade = (int) obj;
Generics São tipos genéricos que funcionam a partir de outro tipo que é passado como parâmetro O tipo do parâmetro é especificado na instanciação do objeto, assim: List<string> nomes = new List<string>(); E é declarado assim: public class List<T>
Demonstração Criando um tipo genérico Restringindo os tipos do parâmetro genérico Usando os tipos genéricos do .Net
Linq (LanguageIntegrated Query) É uma linguagem de consulta de dados  É todo baseado em interfaces, delegates e métodos de extensão O Linq trabalha com diversos data sources LinqtoEntities Linqto XML LinqtoDataSets LinqtoObject
LINQ architecture C# Other .NET Framework language LINQ LINQ-enabled data source LINQ-enabled ADO.NET LINQ to  Objects LINQ to  SQL LINQ to  DataSets LINQ to  XML LINQ to  Entities Arquitetura do Linq
Demonstração de Linq Realizando consultas com métodos de extensão Usando a sintaxe simplificada Realizando filtros complexos Realizando agregações  Realizando joins
Contatos Blog: http://waldyrfelix.net/blog Email: waldyrfelix@gmail.com MSN: waldyrpe@hotmail.com Gtalk: waldyrfelix@gmail.com Skype: waldyrfelix Twitter: @WaldyrFelix

Mais conteúdo relacionado

Mais procurados

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
Leonardo Melo Santos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
Evandro Agnes
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
Sedu
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
Edy Segura
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
danielrpgj30
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
Mayron Cachina
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
JoseHenrique Joanoni
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Orlando Junior
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
Cristiano Almeida
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
Tony Alexander Hild
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
Nécio de Lima Veras
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
soncino
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
Mario Jorge Pereira
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
Orlando Saraiva Júnior
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
Igor Takenami
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
Gabriel Faustino
 

Mais procurados (20)

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 

Destaque

Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
Regis Magalhães
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML
Christopher Cerqueira
 
Aula 04
Aula 04Aula 04
Aula 04
graconlima
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
Leonardo Melo Santos
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
Alessandro Binhara
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
Leandro Santos
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
Gabriel Vinicios Silva Maganha
 
Aula 02
Aula 02Aula 02
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
Regis Magalhães
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
Nathanael Jorge
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
Willians Miyabara
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 

Destaque (13)

Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Apostila sobre o Visualg
Apostila sobre o VisualgApostila sobre o Visualg
Apostila sobre o Visualg
 
[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML[CRASHCOURSE] Orientação a Objeto e UML
[CRASHCOURSE] Orientação a Objeto e UML
 
Aula 04
Aula 04Aula 04
Aula 04
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Curso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto BasicoCurso C# em Mono - Orientação a Objeto Basico
Curso C# em Mono - Orientação a Objeto Basico
 
Lógica de programação com visu alg
Lógica de programação com visu algLógica de programação com visu alg
Lógica de programação com visu alg
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Aula 02
Aula 02Aula 02
Aula 02
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Apostila Visualg
Apostila VisualgApostila Visualg
Apostila Visualg
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Semelhante a Introdução a C# 4.0 (Revisão)

Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
wildcat9335
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
guestac3de
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
Glaucio Scheibel
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
Fabio Spanhol
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
Mario Jorge Pereira
 
Amarração e escopo
Amarração e escopoAmarração e escopo
Amarração e escopo
Sérgio Souza Costa
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
Fabio Spanhol
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
Paulo Morgado
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Comunidade NetPonto
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
Mario Jorge Pereira
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
Fabio Spanhol
 
Clean Code
Clean CodeClean Code
Clean Code
Bruno Lui
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
Rogério Moraes de Carvalho
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
Rogério Moraes de Carvalho
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
Fabio Spanhol
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
Fabio Spanhol
 
dotNet framework foundation
dotNet framework foundationdotNet framework foundation
dotNet framework foundation
Gabriel Guilherme
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
Fabio Spanhol
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Flávio Ribeiro
 

Semelhante a Introdução a C# 4.0 (Revisão) (20)

Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Tutorial Python - 1
Tutorial Python - 1Tutorial Python - 1
Tutorial Python - 1
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Amarração e escopo
Amarração e escopoAmarração e escopo
Amarração e escopo
 
Python Training #1, ed. 6
Python Training #1, ed. 6Python Training #1, ed. 6
Python Training #1, ed. 6
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Tutorial Python ed. #2
Tutorial Python ed. #2Tutorial Python ed. #2
Tutorial Python ed. #2
 
Clean Code
Clean CodeClean Code
Clean Code
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
Computação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo TutorialComputação Científica com SciPy - Brevíssimo Tutorial
Computação Científica com SciPy - Brevíssimo Tutorial
 
Python tutorial-ed3
Python tutorial-ed3Python tutorial-ed3
Python tutorial-ed3
 
dotNet framework foundation
dotNet framework foundationdotNet framework foundation
dotNet framework foundation
 
Python Training #1 ed.6
Python Training #1 ed.6 Python Training #1 ed.6
Python Training #1 ed.6
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 

Mais de Waldyr Felix

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
Waldyr Felix
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
Waldyr Felix
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
Waldyr Felix
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.
Waldyr Felix
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
Waldyr Felix
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
Waldyr Felix
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
Waldyr Felix
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
Waldyr Felix
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
Waldyr Felix
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
Waldyr Felix
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
Waldyr Felix
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
Waldyr Felix
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
Waldyr Felix
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
Waldyr Felix
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
Waldyr Felix
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Waldyr Felix
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
Waldyr Felix
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
Waldyr Felix
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
Waldyr Felix
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
Waldyr Felix
 

Mais de Waldyr Felix (20)

Apache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performanceApache Kafka: Comunicando microsserviços com performance
Apache Kafka: Comunicando microsserviços com performance
 
Kubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do DockerKubernetes: Escalando containers do Docker
Kubernetes: Escalando containers do Docker
 
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
A história do LinkApi, como chegamos numa arquitetura para suportar 1 milhão ...
 
HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.HTTP/2. O que você precisa saber a nova versão do HTTP.
HTTP/2. O que você precisa saber a nova versão do HTTP.
 
ECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.jsECMAScript 6 / ECMAScript 2015 no Node.js
ECMAScript 6 / ECMAScript 2015 no Node.js
 
Performance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.jsPerformance do ASP.NET Core, um comparativo com Node.js
Performance do ASP.NET Core, um comparativo com Node.js
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
ASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJSASP.NET SignalR + SPA com AngularJS
ASP.NET SignalR + SPA com AngularJS
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014Sistema de Notificações com SignalR TDC 2014
Sistema de Notificações com SignalR TDC 2014
 
ASP.NET MVC 5.x
ASP.NET MVC 5.xASP.NET MVC 5.x
ASP.NET MVC 5.x
 
ASP.NET MVC & Entity Framework
ASP.NET MVC & Entity FrameworkASP.NET MVC & Entity Framework
ASP.NET MVC & Entity Framework
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Produtividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVCProdutividade na criação de websites com ASP.NET MVC
Produtividade na criação de websites com ASP.NET MVC
 
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web APITrilha .NET - REST na plataforma Microsoft com ASP.NET Web API
Trilha .NET - REST na plataforma Microsoft com ASP.NET Web API
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
Explorando Microsoft Fakes
Explorando Microsoft FakesExplorando Microsoft Fakes
Explorando Microsoft Fakes
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012Usando Scrum com Team Foundation Server 2012
Usando Scrum com Team Foundation Server 2012
 

Último

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (6)

Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Introdução a C# 4.0 (Revisão)

  • 1. Introdução a C# 4.0 (Revisão) Inove Informática Waldyr Felix
  • 2. Ementa de hoje Interfaces Polimorfismo Delegates Eventos Exceptions Indexadores Enums Boxing / Unboxing Generics LINQ
  • 3. Interfaces Interfaces são contratos entre camadas de um software São extremamente importantes em padrões de projeto e arquitetura de software Definem todos os membros públicos (visíveis) para o consumidor do objeto Não possuem implementação alguma É possível implementar mais de uma interface
  • 4. Polimorfismo Em orientação a objetos, polimorfismo é a capacidade de tipos mais abstratos representarem comportamentos de tipos mais específicos A palavra Polimorfismo vem do grego e significa muitas formas Pode ser feito através de herança de classes base, através de generics ou por sobrecarga de métodos
  • 5. Demonstração Interfaces + Polimorfismo Definindo uma interface Usando objetos através de interfaces Criando polimorfismo com interfaces
  • 6. Delegates Delegates são ponteiros para métodos Podem ser usados de forma síncrona ou assíncrona São utilizados para definir métodos callbacks, retardar chamadas a métodos, passar métodos por parâmetro Não existe evento sem delegate no .Net
  • 7. Eventos Notificam outros objetos que alguma coisa relevante aconteceu Sempre existe duas partes envolvidas ao se trabalhar com eventos O objeto notificador E o objeto que assina o evento São comumente utilizados em interfaces gráficas. Ex.: Clique de um botão Pode referenciar mais de um método ao mesmo tempo
  • 8. Demonstração Delegates + Eventos Definindo um delegate Utilizando um delegate na aplicação Criando um evento a partir de um delegate existente Notificando ações através de eventos
  • 9. Exceptions Exceptions são classes especiais que servem para notificar erros em tempo de execução Todos os exceptions derivam da classe Exception Quando um exception é lançado o fluxo da aplicação é quebrado O tratamento dos exceptions pode ser feito através de blocos try...catch
  • 10. Demonstração Criando o próprio Exception Lançando exceptions usando throw Tratamento de exceptions com try...catch...finally
  • 11. Indexadores Quando estamos trabalhando com Arrays, Listas e Dicionários de dados usamos muito a notação lista[i], por exemplo. Os colchetes servem para capturar um dado que está em determinado índice do array. Em C# esta feature chama-se indexador ou indexer.
  • 12. Exemplo de Indexador Declarando um indexador public class Pedido{    private Item[] items;    public Item this[int i]    {        get { return items[i]; }        set { items[i] = value; }    }} Usandoindexadores pedido[0] = new Item("Camisa Polo"); // usando setItem item = pedido[0];  // usando get
  • 13. Enumerado São tipos de valores constante, que pertencem a um determinado intervalo São indexados a partir do zero São tipos por valor (struct) Podem ter vários tamanhos (byte, int, long,...) É mais seguro usar Enums que constantes Deixam o código mais fácil de ler, manter e mais elegante
  • 14. Exemplo de Enum public enum EstadoDoPedido : byte{    Cancelado = 1,    Atendido,    EmProcesso}
  • 15. Boxing e Unboxing Boxing Tipo por valor para tipo por referência Copia os dados da memória stack para a heap Unboxing Processo inverso, tipo por referência para tipo por valor Memória heap para memória stack As duas operações geram overhead
  • 16. Exemplo de Boxing e Unboxing Boxing decimal preço = 345.35m;object obj = preço; Unboxing object obj = 34;int idade = (int) obj;
  • 17. Generics São tipos genéricos que funcionam a partir de outro tipo que é passado como parâmetro O tipo do parâmetro é especificado na instanciação do objeto, assim: List<string> nomes = new List<string>(); E é declarado assim: public class List<T>
  • 18. Demonstração Criando um tipo genérico Restringindo os tipos do parâmetro genérico Usando os tipos genéricos do .Net
  • 19. Linq (LanguageIntegrated Query) É uma linguagem de consulta de dados É todo baseado em interfaces, delegates e métodos de extensão O Linq trabalha com diversos data sources LinqtoEntities Linqto XML LinqtoDataSets LinqtoObject
  • 20. LINQ architecture C# Other .NET Framework language LINQ LINQ-enabled data source LINQ-enabled ADO.NET LINQ to Objects LINQ to SQL LINQ to DataSets LINQ to XML LINQ to Entities Arquitetura do Linq
  • 21. Demonstração de Linq Realizando consultas com métodos de extensão Usando a sintaxe simplificada Realizando filtros complexos Realizando agregações Realizando joins
  • 22. Contatos Blog: http://waldyrfelix.net/blog Email: waldyrfelix@gmail.com MSN: waldyrpe@hotmail.com Gtalk: waldyrfelix@gmail.com Skype: waldyrfelix Twitter: @WaldyrFelix