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)); }
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课程"; }