日期:2014-05-18  浏览次数:21011 次

请高手讲讲委托和接口的使用区别
对于委托我个人总感觉类似接口那样,但是又说不出来二者的异同细微之处
对二者的功能和使用环境的区别能否详细辨别一下?

------解决方案--------------------
委托和接口不能扯上关系?
委托和接口都是实现多态的方法,关系非常密切!!!

最简单的例子:

Array有一个Sort方法,如果要实现自定义排序,有两个重载:委托和接口
C# code
委托:
public static void Sort<T> (
    T[] array,
    Comparison<T> comparison
)

------解决方案--------------------
接口(interface)是面向类(class)的,而委托(delegate)是面向方法(method)和属性(property)。接口必须应用在类上面,而委托却是应用在方法和属性上。

委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,其实委托类似与C++中的函数指针,但委托是类型安全和可靠的,委托是事件的基础 

------解决方案--------------------
功能一样

接口里面指向各种方法
委托指向一个(或几个参数相同的)方法

委托只要指向到方法名就可以了
接口需要新建一个类,然后去实现接口中的方法

在Java中实现C#中委托的效果就可以做一个接口,然后新建一个类(或匿名类)去实现接口,从而指向到方法