public static void Executar()
        {
            //Executa diretamente o método
            Console.WriteLine($"Duplicar(7.5): {Duplicar(7.5)}");

            //Executa diretamente o método
            Console.WriteLine($"Triplicar(7.5): {Triplicar(7.5)}");

            MetodoMultiplicacao metodoMultiplicacao = Duplicar;

            Console.WriteLine(metodoMultiplicacao(7.5));

            ///troca a referência
            metodoMultiplicacao = Triplicar;
            Console.WriteLine($"Triplicar(7.5): {metodoMultiplicacao(7.5)}");

            // instancia um delegado com um método anônimo
            MetodoMultiplicacao metodoQuadrado = delegate(double input)
            {
                return(input * input);
            };

            double quadrado = metodoQuadrado(5);

            Console.WriteLine("quadrado: {0}", quadrado);

            // intancia um delegado com uma expressão lambda
            MetodoMultiplicacao metodoCubo = input => input * input * input;

            double cubo = metodoCubo(4.375);

            Console.WriteLine("cubo: {0}", cubo);
        }
Пример #2
0
    public static void Executar()
    {
        System.Console.WriteLine($"Duplicar(7.5): {Duplicar(7.5)}");
        System.Console.WriteLine($"Triplicar(7.5): {Triplicar(7.5)}\n");

        MetodoMultiplicacao metodoMultiplicacao = Duplicar;

        System.Console.WriteLine("usando delegate com duplicar");
        System.Console.WriteLine($"Duplicar(7.5): {metodoMultiplicacao(7.5)}");

        metodoMultiplicacao = Triplicar;

        System.Console.WriteLine("usando delegate com triplicar");
        System.Console.WriteLine($"Triplicar(7.5): {metodoMultiplicacao(7.5)}");

        //instancia um delegate com um metodo anonimo
        MetodoMultiplicacao metodoQuadrado = delegate(double input)
        {
            return(input * input);
        };

        double quadradoResultado = metodoQuadrado(5);

        System.Console.WriteLine($"Quadrado: {quadradoResultado}\n");

        //instancia um delegate com um expressao lambda
        MetodoMultiplicacao metodoCubo = input => input * input * input;

        System.Console.WriteLine($"Cubo de 5: {metodoCubo(5)}");
    }
Пример #3
0
        public static void Executar()
        {
            Console.WriteLine($"Duplicar(7.5): {Duplicar(7.5)}");
            Console.WriteLine($"Triplicar(7.5): {Triplicar(7.5)}");

            MetodoMultiplicacao metodoMultiplicacao = Duplicar;

            Console.WriteLine(metodoMultiplicacao(7.5));

            metodoMultiplicacao = Triplicar;
            Console.WriteLine(metodoMultiplicacao(7.5));

            MetodoMultiplicacao metodoQuadrado = delegate(double input)
            {
                return(input * input);
            };

            double quadrado = metodoQuadrado(5);

            Console.WriteLine($"Quadrado: {quadrado}");

            MetodoMultiplicacao metodoCubo = input => input * input * input;
            double cubo = metodoCubo(4.375);

            Console.WriteLine($"Cubo: {cubo}");
        }
Пример #4
0
        public void Executar()
        {
            MetodoMultiplicacao metodoMultiplicacao = Duplicar;

            Console.WriteLine(metodoMultiplicacao(3));

            // método anônimo
            // Ou seja, que não foi declarado em nenhum escopo antes, somente nesse.
            MetodoMultiplicacao metodoQuadrado = delegate(double input)
            {
                return(input * input);
            };

            Console.WriteLine(metodoQuadrado(4));

            // chamando um método anônimo com lâmbida;
            MetodoMultiplicacao metodoCubo = input => input * input * input;

            Console.WriteLine(metodoCubo(4));

            // declarando o método sem uma assinatura prévia...
            //Func => espera que seja retornado algo
            Func <int, int>?delegateComRetorno = delegate(int input)
            {
                return(input);
            };

            //Action => não espera retorno (ou seja, um void).
            Action <int> delegateSemRetorno = delegate(int input)
            {
                Console.WriteLine(input);
            };

            delegateComRetorno(10);
            delegateSemRetorno(10);
        }