C#学习笔记——委托

本文介绍了C#中的委托概念,将其比喻为函数指针,详细讲解了Action和Func预定义委托的用法,并通过实例展示了如何声明和调用自定义委托。同时,文章强调了使用委托时应注意的问题,包括类型一致性、方法耦合度以及可能对代码可读性和性能的影响。

委托,相当于函数指针,是对方法的包装,把方法包装成变量就是定义声明委托变量,把它作为参数传给其他方法就是调用委托。
首先,Action和Func是C#类库中已经定义好的委托,

public delegate double Cal(double a, double b);
public static void Main(string[] args)

    {
        Claculator claculator = new Claculator();
        Action action = new Action(claculator.Show);
        action.Invoke();
        Func<double, double, double> func = new Func<double, double, double>(claculator.Add);//传入两个double类型的参数,返回值为double
        double result = func.Invoke(12, 13);
        Console.WriteLine(result is double);
          Cal cal = new Cal(claculator.Sub);
        result = cal.Invoke(13, 12);
     
    }
  class Claculator
    {
        public void Show()
        {
            Console.WriteLine("加法与减法");
        }
        public double Add(double a,double b)
        {
            return a + b;
        }
        public double Sub(double a,double b)
        {
            return a - b;
        }
    }  

这是一个简单的调用action func委托和自定义委托的例子,action可以是一个无传参,无返回值的委托,而func的最后一个表示返回值类型,前面的为传入的参数.
使用委托的注意事项
委托与所封装的方法要类型一致,委托是一种类,所以他的声明与类同级,不能嵌套在类里。
委托的方法级别的紧耦合,即相互调用的方法之间产生了相互依赖的关系,一旦某个方法出现bug,调用它的方法也无法工作
过多使用委托,使代码的可读性下降,debug难度增加
使用委托不当,还会造成内存泄漏和性能下降

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值