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

22
Introdução a C# 4.0 (Revisão) Inove Informática Waldyr Felix

description

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

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

Page 1: Introdução a C# 4.0 (Revisão)

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

Inove Informática Waldyr Felix

Page 2: Introdução a C# 4.0 (Revisão)

Ementa de hojeInterfacesPolimorfismoDelegatesEventosExceptions

IndexadoresEnumsBoxing /

UnboxingGenericsLINQ

Page 3: Introdução a C# 4.0 (Revisão)

InterfacesInterfaces são contratos entre camadas de

um softwareSão extremamente importantes em padrões

de projeto e arquitetura de softwareDefinem todos os membros públicos (visíveis)

para o consumidor do objetoNão possuem implementação algumaÉ possível implementar mais de uma

interface

Page 4: Introdução a C# 4.0 (Revisão)

PolimorfismoEm 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

Page 5: Introdução a C# 4.0 (Revisão)

Demonstração Interfaces + PolimorfismoDefinindo uma interfaceUsando objetos através de interfacesCriando polimorfismo com interfaces

Page 6: Introdução a C# 4.0 (Revisão)

DelegatesDelegates são ponteiros para métodosPodem ser usados de forma síncrona ou

assíncronaSã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

Page 7: Introdução a C# 4.0 (Revisão)

EventosNotificam outros objetos que alguma coisa

relevante aconteceuSempre existe duas partes envolvidas ao

se trabalhar com eventosO objeto notificadorE 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

Page 8: Introdução a C# 4.0 (Revisão)

Demonstração Delegates + Eventos Definindo um delegateUtilizando um delegate na aplicaçãoCriando um evento a partir de um delegate

existenteNotificando ações através de eventos

Page 9: Introdução a C# 4.0 (Revisão)

ExceptionsExceptions são classes especiais que servem

para notificar erros em tempo de execuçãoTodos os exceptions derivam da classe

ExceptionQuando um exception é lançado o fluxo da

aplicação é quebradoO tratamento dos exceptions pode ser feito

através de blocos try...catch

Page 10: Introdução a C# 4.0 (Revisão)

DemonstraçãoCriando o próprio ExceptionLançando exceptions usando throwTratamento de exceptions com

try...catch...finally

Page 11: Introdução a C# 4.0 (Revisão)

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

Page 12: Introdução a C# 4.0 (Revisão)

Exemplo de IndexadorDeclarando um indexador

public class Pedido{    private Item[] items;    public Item this[int i]    {        get { return items[i]; }        set { items[i] = value; }    }}

Usando indexadores

pedido[0] = new Item("Camisa Polo"); // usando setItem item = pedido[0];  // usando get

Page 13: Introdução a C# 4.0 (Revisão)

EnumeradoSão tipos de valores constante, que

pertencem a um determinado intervaloSão indexados a partir do zeroSão tipos por valor (struct)Podem ter vários tamanhos (byte, int, long,...)É mais seguro usar Enums que constantesDeixam o código mais fácil de ler, manter e

mais elegante

Page 14: Introdução a C# 4.0 (Revisão)

Exemplo de Enumpublic enum EstadoDoPedido : byte{    Cancelado = 1,    Atendido,    EmProcesso}

Page 15: Introdução a C# 4.0 (Revisão)

Boxing e UnboxingBoxing

Tipo por valor para tipo por referênciaCopia os dados da memória stack para a heap

UnboxingProcesso inverso, tipo por referência para tipo

por valorMemória heap para memória stack

As duas operações geram overhead

Page 16: Introdução a C# 4.0 (Revisão)

Exemplo de Boxing e UnboxingBoxing

decimal preço = 345.35m;object obj = preço;

Unboxingobject obj = 34;int idade = (int) obj;

Page 17: Introdução a C# 4.0 (Revisão)

GenericsSão tipos genéricos que funcionam a partir

de outro tipo que é passado como parâmetroO tipo do parâmetro é especificado na

instanciação do objeto, assim:List<string> nomes = new List<string>();

E é declarado assim:public class List<T>

Page 18: Introdução a C# 4.0 (Revisão)

DemonstraçãoCriando um tipo genéricoRestringindo os tipos do parâmetro genéricoUsando os tipos genéricos do .Net

Page 19: Introdução a C# 4.0 (Revisão)

Linq (Language Integrated Query)É uma linguagem de consulta de dados É todo baseado em interfaces, delegates e

métodos de extensãoO Linq trabalha com diversos data sources

Linq to EntitiesLinq to XMLLinq to DataSetsLinq to Object

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

LINQ architecture

C# Other .NET Framework language

LINQ

LINQ-enabled data source

LINQ to Objects

LINQ to XML

LINQ to DataSets

LINQ to SQL

LINQ to Entities

LINQ-enabled ADO.NET

Arquitetura do Linq

Page 21: Introdução a C# 4.0 (Revisão)

Demonstração de LinqRealizando consultas com métodos de

extensãoUsando a sintaxe simplificadaRealizando filtros complexosRealizando agregações Realizando joins