请问委托和指针的优劣、利弊、异同,不要百度,谢谢!!!!!!

解决方案 »

  1.   

    C#中的委托类似于C++中的函数指针。使用委托可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。
    与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。
    函数指针就是指向函数入口的指针。虽然每个函数不是变量,但是在内存中,函数也占有相应的物理地址,函数指针就是指向该函数的入口地址的。
      

  2.   

    我没看过哪个C#程序员用指针的.
    指针用不好会出现内存泄露的情况,但是委托不会.
    指针相对而言比较难控制,逻辑比较难理解,需要有好的计算机基础.因为他直接操作内存.而委托对于程序员而言就是把函数作为参数传递.只要执行委托,那么委托预定的函数就会被执行,这既简单又好理解.其实委托就是封装好的指针,但由.net框架保证的你安全性.
      

  3.   

    委托是可以被注入的(修改其指针),不过操作比较繁琐,而且.net版本不兼容。
      

  4.   

    委托类型的事件确实相对函数指针要更好些.但是不能因此就滥用事件.C#里的委托默认都是多播的确实对性能有影响.另外在IDispose的接口中最好将不需要的事件,解除注册,否者,有引用的对象系统回收不了.
      

  5.   

                                                        
    委托本质是一种类型,是一个对象,和Object没什么区别;内容是封装了一个函数入口的表;特点是强类型,安全。指针本质是一个数字编号,可以转换为int\long\ulong等类型;内容是指向某段内存的地址;特点是高效,自由~~2者不在同一个概念的层次上,没有可比性