有个问题,我一直不懂,C#既然有接口了,为什么还要委托呢?委托有什么优势呢(实质点的)?谢谢!

解决方案 »

  1.   

    to wxy0401(abc) 
    可能我表达不清楚吧,个人感觉用interface作事件处理似乎更简洁明了和OO。to maliang00111
    这些我也看过,可是有些还是不懂。比如1,4条似乎interface作的也很好啊,2,3,5有什么明显优势、意义吗?怎么感觉有点华而不实呢?6,7能举例说明一下吗?谢谢!
      

  2.   

    to bbdog(贝贝狗)
    我确实没入门
    你能给些需要用到delegate而interface不能作的东西吗?谢谢!最好是比较实际点的。
      

  3.   

    A.DLL定义的一个方法,B.DLL定义一个委托,C.EXE同时引用了A.DLL和B.DLL,则可以把A.DLL中的这个方法按B.DLL定义的委托去调用.而A.DLL没有必要直接引用B.DLL,如果有一天C.EXE想升级的话,可能用D.DLL去替掉A.DLL,而实现新的功能以上要求如果用接口去实现的话,A.DLL必须要引用B.DLL才可以实现,现实中A.DLL和B.DLL和C.EXE不一定必须是一个厂家的产品,A.DLL的开发商可能根本不知道B.DLL的存在,也不知道C.Exe会如何使用自己.
      

  4.   

    1.指针变量有两种
    第一种.类指针
    -------------------------
    class a{} 
    a obj =new a();
    //obj 是类指针
    -------------------------
    第二种.函数指针
    -------------------------
    delegate void b(int v);void f(int v){};b obj=new b(f);
    //obj 是函数指针
    -------------------------
    2.事件就是委托多了个event关键字,你将event去掉,代码不会报错3.接口是定义类时必须要定义的,不过在C#中,你不定义编译器帮你做了4.接口是初始化"栈"的模板,"类实体"是初始化"堆"的模板5.一个类指针由一组"函数指针"与"类指针组成"6.委托就是函数指针,是面向对象内存实现的基石
      

  5.   

    非常感谢jointan,wxwinter的帮助,呵呵