基础学习Csharp委托ZHY2022-02-222022-10-03委托delegate:可以保存多个函数指针,试用=+,-+进行操作。//将函数赋值给delegate,delegate会储存下来。 //Action无返回值 Action<string> print = Print; print("使用print打印"); Func<float,float,float> fc = Mul;//打印:Func,第三个参数是返回值类型 var f = fc(3, 4).ToString(); //打印:乘法3 * 4 = 12 Console.WriteLine(f);//打印:12 CalFunc func = Add; func(1.1f, 2);//打印:加法1.1+2=3.1 Console.WriteLine("加入Sub()"); func += Sub; func(1.1f, 2);//打印:减法1.1+2=3.1 //1.1-2=-0.9 Console.WriteLine("移除Add()"); func -= Add; func(1.1f, 2);//打印:减法1.1-2=-0.9 Console.WriteLine("-------------闭包↓----------------"); int intVal = 10; //匿名函数 执行后改变的值可作用到函数外。 Action aa = () => { intVal += 10; }; aa();//调用 Console.WriteLine(intVal);//打印:20//无返回值,封装了一个print代替writeline static void Print(string info) =>Console.WriteLine(info); //定义了delegate,可以存储函数指针 delegate float CalFunc(float f1, float f2); //下面是好几个函数,实现加减乘。 static float Add(float arg1, float arg2) { Console.WriteLine($"加法{arg1}+{arg2}={arg1 + arg2}"); return arg1 + arg2; } static float Sub(float arg1, float arg2) { Console.WriteLine($"减法{arg1}-{arg2}={arg1 - arg2}"); return arg1 - arg2; } static float Mul(float arg1, float arg2) { Console.WriteLine($"乘法{arg1}*{arg2}={arg1 * arg2}"); return arg1 * arg2; }