A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

C# Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Alexandre T. Vasconcelos Delegates.

Apresentações semelhantes


Apresentação em tema: "C# Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Alexandre T. Vasconcelos Delegates."— Transcrição da apresentação:

1 C# Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Alexandre T. Vasconcelos Delegates

2 Definição -Elemento que permite referenciar um ou vários métodos. -Oferece flexibilidade máxima de implementar qualquer funcionalidade em tempo de execução.

3 Definição Declaração delegate type DelegateTypeName(...) Instanciação new DelegateTypeName( NameOfMethodToDelegate ); ---- Como classes----

4 Características Métodos que vão ser referenciados precisam ter a mesma assinatura da declaração do delegate, ou seja, mesmos parâmetros e mesmo retorno; Delegates guardam uma “lista” de métodos; Um delegate vazio é igual a null;

5 Implementação using System; namespace Delegate { delegate void meuDelegate(string s); //declaração class minhaClasse { public static void Ola(string s) { Console.WriteLine ("Ola, {0}!", s); } public static void Txau(string s) { Console.WriteLine("Txau, {0}!", s); }

6 Implementação static void Main(string[] args) { meuDelegate a, b; a = new meuDelegate(Ola); b = new meuDelegate(Txau); a("A"); b("B"); } // fim do Main } // fim da classe } // fim no namespace

7 Saída

8 Outra... delegate void Foo(int x); class MyClass{ void SomeMethod(int y){ … } int AnotherMethod(int z){ … } } class MyOtherClass{ void YetAnother(){ … } static void SomeOther(int z){ … } } Thinking in C#

9 Outra... delegate void Foo(int x); class MyClass{ void SomeMethod(int y){ … } int AnotherMethod(int z){ … } } class MyOtherClass{ void YetAnother(){ … } static void SomeOther(int z){ … } } Thinking in C#

10 Observação Delegates só podem instanciar métodos estáticos ou métodos de objetos que já tiverem sido instanciados. Exemplo a seguir...

11 //Teste.cs //Declaração e Instância de delegates delegate void Teste(); class minhaClasse{ static void MetodoEstatico(){ System.Console.WriteLine(“Estatico"); } void MetodoInstanciado(){ System.Console.WriteLine(“Instanciado"); }

12 public static void Main(){ //referências dos delegates são null Teste p1; Teste p2; p1 = new Teste(minhaClasse.MetodoEstatico); p1(); minhaClasse s = new minhaClasse(); p2 = new Teste(s.MetodoInstanciado); p2();

13 Mais... - Todos os eventos, tão importantes para o funcionamento do ambiente de desenvolvimento, são “delegates” - Os delegates permitem que uma classe chame métodos em outras sem exigir que esta outra classe seja derivada de um ancestral conhecido.

14 Referências Thinking in C# http://www.csharp-station.com/Tutorials


Carregar ppt "C# Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Alexandre T. Vasconcelos Delegates."

Apresentações semelhantes


Anúncios Google