static void Main(string[] args)
        {
            //1ª forma de instânciar o delegate
            MetodoDelegate oMD = RetornoValor;

            Console.WriteLine($"1ª forma, valor: {oMD(1)}");

            //2ª forma de instanciar o delegate
            MetodoDelegate oMD2 = new MetodoDelegate(RetornoValor);

            Console.WriteLine($"2ª forma, valor: {oMD2(2)}");

            //3ª forma de instanciar o delegate´com método anônimo
            MetodoDelegate oMD3 = delegate(int numero)
            {
                return(numero.ToString());
            };

            Console.WriteLine($"3ª forma, valor: {oMD3(3)}");

            //4ª forma de instanciar o delegate com expressão lambda
            MetodoDelegate oMD4 = d => d.ToString();

            Console.WriteLine($"4ª forma, valor: {oMD4(4)}");
        }
示例#2
0
        static void Main(string[] args)
        {
            // 1ª forma de instanciar um delegate
            MetodoDelegate oMD = RetornoValor;

            //botaoacao seila = RetornoValor;
            Console.WriteLine("1ª forma, valor: {0}", oMD(1));

            // 2ª forma de instanciar um delegate
            MetodoDelegate oMD2 = new MetodoDelegate(RetornoValor);

            Console.WriteLine("2ª forma, valor: {0}", oMD2(2));

            // 3ª forma de instanciar um delegate - Método anônimo
            MetodoDelegate oMD3 = delegate(int numero)
            {
                return(numero.ToString());
            };

            Console.WriteLine("3ª forma, valor: {0}", oMD3(3));

            // 4ª forma de instanciar um delegate - expressão lambda
            MetodoDelegate oMD4 = d => d.ToString();

            Console.WriteLine("4ª forma, valor: {0}", oMD4(4));
            // 5ª forma de instanciar um delegate -Invoke
            Console.WriteLine("Numero: " + oMD.Invoke(7));
            Console.ReadKey();
        }