Example #1
0
        public void Test()
        {
            //使用泛型方法:具体方法
            CalcDetegate <int>    calc1 = Add;
            CalcDetegate <double> calc2 = Sub;

            Console.WriteLine("自定义泛型委托" + calc1(10, 20));
            Console.WriteLine("自定义泛型委托" + calc2(20, 10));


            //使用泛型方法:匿名方法
            CalcDetegate <int>    calc3 = delegate(int a, int b) { return(a + b); };
            CalcDetegate <double> calc4 = delegate(double a, double b) { return(a - b); };

            Console.WriteLine("自定义泛型委托" + calc3(20, 20));
            Console.WriteLine("自定义泛型委托" + calc4(20, 50));


            //使用泛型方法:lambda表达式
            CalcDetegate <int>    calc5 = (int a, int b) => { return(a + b); };
            CalcDetegate <double> calc6 = (a, b) => a - b;

            Console.WriteLine("自定义泛型委托" + calc5(20, 20));
            Console.WriteLine("自定义泛型委托" + calc6(20, 23));
        }
Example #2
0
        public void Test()
        {
            //1.委托关联独立的方法
            CalcDetegate calc1 = Add;

            //2.委托关联匿名方法

            CalcDetegate calc2 = delegate(int a, int b)
            {
                return(a + b);
            };

            Console.WriteLine("匿名方法计算结果:" + calc2(5, 2));
            //3.将匿名方法用lambda简化
            CalcDetegate calc3 = (int a, int b) => { return(a + b); };
            //进一步简化(方法中只有一行代码)
            CalcDetegate calc4 = (a, b) => a - b;;


            Console.WriteLine("lambda表达式匿名方法计算结果:" + calc4(5, 2));


            HelloDetegate helloDetegate = () => ".net课程";
        }