delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m!!!!
谁能给一个实例。如果不用delegate。能实现这样的功能吗。如果能。怎样实现。

解决方案 »

  1.   

    本帖最后由 caozhy 于 2011-06-11 15:35:17 编辑
      

  2.   

    委托版本
    class A
    {
        public void foo()
        {
            Console.WriteLine("A.foo()");
            new B().bar(this.CallBack);
        }    public void CallBack()
        {
            Console.WriteLine("A.Callback()");
        }
    }class B
    {
        public void bar(Action a)
        {
            Console.WriteLine("B.bar()");
            a();
        }
    }
      

  3.   

    你的例子不是我想要的解决方案。
    “delegate允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m”-----这句话是我在网上看到的,我的理解是:类B等于是拥有了方法m。在另一个类c中可直接new一个类B,然后用B.m直接调用。你觉得这样的想法可以实现吗
      

  4.   

            delegate void M();
            class A
            {
                public M m;
            }
            class B
            {
                public void m()
                {
                    Console.WriteLine("B.m()");
                }
            }
            static void Main(string[] args)
            {
                A a = new A();
                B b = new B();
                a.m = b.m;
                a.m();
            }
      

  5.   

    本帖最后由 caozhy 于 2011-06-15 17:13:13 编辑