Utilizando delegates para exibir resultados com c#

0

A utilização de delegates é útil por conter a habilidade para personalizar comportamentos de objeto durante o uso e execução dos programas. Na maioria das vezes, você pode usar outras maneiras, mas a utilização de delegates pode ser apenas a maneira mais fácil em algumas situações para obter a “coisa feita”.

O exemplo abaixo é um tipo de delegate que contém a referência de método (s) em um objeto. É também referido como um ponteiro de tipo seguro ou “safe pointer type”.

  class Program
    {

        public delegate int DelegateHandler(int a, int b);
        static void Main(string[] args)
        {
            Resultados resultados = new Resultados();
          
            DelegateHandler dlgt = new DelegateHandler(resultados.Soma);
            Console.WriteLine("Resultado de soma é: " +  dlgt(30, 10));

            dlgt = new DelegateHandler(resultados.Subtrai);
            Console.WriteLine("Resultado de subtração é: " + dlgt(30, 10));

            dlgt = new DelegateHandler(resultados.Multiplica);
            Console.WriteLine("Resultado de multiplicação é: " + dlgt(30, 10));

            dlgt = new DelegateHandler(resultados.Divide);
            Console.WriteLine("Resultado de divisão é: " + dlgt(30, 10));

            Console.ReadLine();
        }
    
    }

    public class Resultados
    {
        public int Soma(int a, int b)
        {
            return a + b;
        }

        public int Subtrai(int a, int b)
        {
            return a -  b;
        }

        public int Multiplica(int a, int b)
        {
            return a * b;
        }

        public int Divide(int a, int b)
        {
            return a / b;
        }
    }

 

As saídas serão os resultados de cada operação matemática, de uma forma bem simples. Você também pode customizar o delegate para exibir string, objetos e o que mais precisar!

Um grande abraço.

 

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com