委托适配

委托适配

例子如下:

class A

    {
        public void Fun_A(int a)
        {
            Console.WriteLine("Fun_A");
        }
        public void Fun_A1()
        {
            Fun_A(0);
        }

    }


   class B
    {
        public void Fun_B()
        {
            Console.WriteLine("Fun_B");
        }
    }

   class S
    {
        public delegate void S_weituo();
        public S_weituo weituo1;
    }


static void Main(string[] args)
        {
            A a1=new A();
            B b1=new B();
            S s1 = new S();
            //Fun_A1是为了适配委托而出来的。
            s1.weituo1 += a1.Fun_A1;

        //等号前的一对括号,是定义的无参适配函数的参数,目前是空。返回值是根据被适配的函数来的。
            s1.weituo1 += (() => { a1.Fun_A(0); });//此语句的功能和上面相同,不过,这种方法不用手动定义适配函数,系统自动生成

            s1.weituo1 += b1.Fun_B;
            s1.weituo1();
        }

 A a1=new A();
            B b1=new B();
            S s1 = new S();
            //Fun_A1是为了适配委托而出来的。
            //s1.weituo1 += a1.Fun_A1;
            //等号前的一对括号,是定义的无参适配函数的参数,目前是空。返回值是根据被适配的函数来的。
            s1.weituo1 += (() => { a1.Fun_A(0); });
            s1.weituo1 += b1.Fun_B;
            s1.weituo1();