1、为什么不在函数里面直接用,还要自讨苦吃呢。
从上面的委托代码中可以发现,引入委托后,编程人员可以把方法的引用封装在委托对象中(把过程的调用转化为对象的调用,充分体现了委托加强了面向对象编程的思想。),然后把委托对象传递给需要引用方法的代码,这样在编译的过程中我们并不知道调用了哪个方法,这样一来,C#引入委托机制后,使得方法声明和方法实现的分离,充分体现了面向对象的编程思想。
2、委托对自己的总结:
我是一个特殊的类,我定义了方法的类型,(就像int定义了数字类型一样,当用一个方法实例化委托对象时,这个委托就代表一个方法,这个方法的类型就是委托类型),我可以将方法当做另一个方法的参数来进行传递,使得程序更容易扩展
3、一些运用的地方
分层开发时,或者开发团队分了几个TEAM时,传参就麻烦了。
比如,当后台使用sql数据库时,负责业务这块的同事保存数据需要使用savetoSqlDataBase();
如果 有一天,高层决定把数据库换成oracal,并且通知了数据库开发小组更改了代码,使用了SaveToOracalDatabase()方法。那么savetoSqlDataBase()就失效了。
如果有委托,负责业务这块的同事保存数据使用 委托 saveToDataBase();
至于交给委托后,数据到底是存在 sqlServer还是oracal,它不需要再关心。