Introdução a C# 4.0 (Revisão)<br />Inove Informática <br />Waldyr Felix<br />
Ementa de hoje<br />Interfaces<br />Polimorfismo<br />Delegates<br />Eventos<br />Exceptions<br />Indexadores<br />Enums<b...
Interfaces<br />Interfaces são contratos entre camadas de um software<br />São extremamente importantes em padrões de proj...
Polimorfismo<br />Em orientação a objetos, polimorfismo é a capacidade de tipos mais abstratos representarem comportamento...
Demonstração Interfaces + Polimorfismo<br />Definindo uma interface<br />Usando objetos através de interfaces<br />Criando...
Delegates<br />Delegates são ponteiros para métodos<br />Podem ser usados de forma síncrona ou assíncrona<br />São utiliza...
Eventos	<br />Notificam outros objetos que alguma coisa relevante aconteceu<br />Sempre existe duas partes envolvidas ao s...
Demonstração Delegates + Eventos <br />Definindo um delegate<br />Utilizando um delegate na aplicação<br />Criando um even...
Exceptions<br />Exceptions são classes especiais que servem para notificar erros em tempo de execução<br />Todos os except...
Demonstração<br />Criando o próprio Exception<br />Lançando exceptions usando throw<br />Tratamento de exceptions com try....
Indexadores<br />Quando estamos trabalhando com Arrays, Listas e Dicionários de dados usamos muito a notação lista[i], por...
Exemplo de Indexador<br />Declarando um indexador<br />public class Pedido{    private Item[] items;    public Item this[i...
Enumerado<br />São tipos de valores constante, que pertencem a um determinado intervalo<br />São indexados a partir do zer...
Exemplo de Enum<br />public enum EstadoDoPedido : byte{    Cancelado = 1,    Atendido,    EmProcesso}<br />
Boxing e Unboxing<br />Boxing<br />Tipo por valor para tipo por referência<br />Copia os dados da memória stack para a hea...
Exemplo de Boxing e Unboxing<br />Boxing<br />decimal preço = 345.35m;object obj = preço;<br />Unboxing<br />object obj = ...
Generics<br />São tipos genéricos que funcionam a partir de outro tipo que é passado como parâmetro<br />O tipo do parâmet...
Demonstração<br />Criando um tipo genérico<br />Restringindo os tipos do parâmetro genérico<br />Usando os tipos genéricos...
Linq (LanguageIntegrated Query)<br />É uma linguagem de consulta de dados <br />É todo baseado em interfaces, delegates e ...
LINQ architecture<br />C#<br />Other .NET Framework language<br />LINQ<br />LINQ-enabled data source<br />LINQ-enabled ADO...
Demonstração de Linq<br />Realizando consultas com métodos de extensão<br />Usando a sintaxe simplificada<br />Realizando ...
Contatos<br />Blog: http://waldyrfelix.net/blog<br />Email: waldyrfelix@gmail.com<br />MSN: waldyrpe@hotmail.com<br />Gtal...
Upcoming SlideShare
Loading in...5
×

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

1,500

Published on

Aula de revisão do curso de Introdução a C# 4.0 ministrado no dia 05/02/2010 na Inove Informatica.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,500
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×