DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Revista MSDN Magazine Edição 32 - C#(csharp) 2.0 - Métodos anônimos

Artigo Originalmente Publicado na MSDN Magazine Edição 32

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

msdn32_capa.jpg

 

Clique aqui para ler todos os artigos desta edição

 

 

 

C# 2.0 - Métodos anônimos

 

A versão 2.0 da linguagem de programação C# introduziu uma série de extensões, como: tipos parciais, classes estáticas, métodos anônimos, tipos e métodos genéricos (generics), iterators e tipos anuláveis. Este artigo é o segundo de uma série que tem como objetivo detalhar os novos recursos do C# 2.0. Nessa segunda parte, vamos conhecer um pouco sobre métodos anônimos.

 

Nota: Para um bom entendimento das técnicas demonstradas nessa série sobre os novos recursos do C# 2.0, é ideal que o leitor tenha pelo menos um conhecimento básico da linguagem C#.

 

O conceito de métodos anônimos está diretamente vinculado ao de delegates. Sendo assim, inicialmente, este artigo abordará delegates e, em seguida, será estendido para demonstrar o uso de métodos anônimos.

Em versões anteriores ao C# 2.0, um delegate somente poderia encapsular métodos nomeados. Quando você instancia um delegate usando um método nomeado, o método é passado como parâmetro. A criação de métodos anônimos é essencialmente uma maneira de passar um bloco de código para um parâmetro delegate.

Delegates

Um delegate é um tipo por referência usado para referenciar um método. Qualquer método que satisfaça a assinatura do delegate, que consiste do tipo de retorno e dos tipos dos parâmetros, pode ser atribuído a uma instância do mesmo.

Delegates são similares a ponteiros de função no C/C++, porém são Orientados a Objetos, tipos seguros.

 

Nota: Observe que a definição de assinatura de um delegate é diferente da assinatura de um método. A assinatura de um método consiste do nome do método e dos tipos dos parâmetros, sendo uma definição essencial para o conceito de sobrecarga de métodos.

 

Os delegates possibilitam mudanças nas chamadas de métodos programaticamente, permitindo “plugar” um novo código chamado de dentro de tipos existentes. A linguagem de programação C# utiliza delegates na declaração de eventos em um tipo.

Exemplo de uso de delegates

O exemplo a seguir possui uma implementação de um delegate e uma classe com um campo deste tipo. O exemplo é constituído por uma solução contendo dois projetos: um projeto Class Library (“RendimentoEscolar”) e outro projeto Console Application (“TesteRendimentoEscolar”), ambos em Visual C#. A Figura 1 apresenta o Solution Explorer do Visual Studio 2005.

 

image002.jpg

Figura 1. Exemplo de delegates no Visual Studio 2005

Projeto Class Library (RendimentoEscolar)

O projeto possui uma classe denominada Rendimento (arquivo Rendimento.cs), cujas instâncias podem ser usadas para armazenar informações sobre o rendimento de um aluno em quatro bimestres e permite o cálculo da média final. Por padrão, a média final será calculada pela média aritmética simples das notas obtidas pelo aluno nos quatro bimestres.

O delegate, nomeado CalcularMedia (arquivo CalcularMedia.cs), tem como objetivo permitir a introdução de uma nova rotina de cálculo da média final, dando a flexibilidade para o desenvolvedor criar uma rotina fora da definição da classe.

A Figura 2 apresenta o diagrama da classe Rendimento.

 

image004.jpg

Figura 2. Diagrama da classe Rendimento

Os campos privados aluno, materia, matricula, nota1b, nota2b, nota3b e nota4b armazenam informações do aluno, da matéria e das notas nos bimestres. Os campos podem ser acessados por propriedades públicas de leitura e escrita.

O campo privado calcularMediaFinal, que é do tipo CalcularMedia (delegate), pode ser acessado indiretamente pela propriedade CalcularMediaFinal para permitir referenciar um outro método para cálculo da média final. A Listagem 1 apresenta a definição do delegate CalcularMedia (crie uma nova classe para inserir o código da Listagem).

 

Listagem 1. Definição do delegate CalcularMedia

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Rogério Moraes De Carvalho
Consultor e instrutor de Tecnologias da Informação. Atua como instrutor e consultor em centros de treinamento oficiais Microsoft e internamente em diversas empresas públicas e privadas. Estuda a plataforma .NET desde 2001, logo após o lançamento da versão beta 1 do Visual Studio .NET (2002). Atualme...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03