基本写法
public delegate void printString(string s);
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
1.能像调用公式那样调用方法;但感觉多此一举,不知道什么时候适合
2.多播,或许有一点点用处吧;在做比较细致的拆分的时候或许能用到。
3.按照别人的说法:委托实际上 就是一个 函数 格式的 映射。(c++里面叫 函数指针 类似),你并不知道你需要传入的函数的名称,根据微软的说法是经过包装的指针,安全、高效。
这个有点说服力,在接口对接口的时候,桥方法不写了,让委托来弄。
4.小程序确实体会不到委托的好处,反而会使程序变得很别扭,但是当程序到达一定复杂程度后,就能体现出来了,以后lz会体会到的。
不过在有些地方是必须使用委托的,比如线程间操作UI控件,异步的回调函数等等。
这个评论有参考价值。
5.C#里没有指针(不考虑unsafe),delegate就相当于函数指针。
6.委托是触发,比如在错误处理中,你当然可以用try…catch来处理,但并不能保证捕获所有的错误.你也不知道错误什么时候发生,所以你可以用委托来处理。
委托用来捕捉错误或许不错。
7.C#设计机制,有一部分线程安全的因素。
看了一圈并不能完全明白委托的用途:
1.查看高级函数看看委托的具体应用。
2.学习事件机制,来研究委托。
3.研究c#的基本原理,重新考虑委托的意义。