Example #1
0
        static void Main(string[] args)
        {
            ProcessDelegate1 pd1 = new ProcessDelegate1(new Program().PorgramMethod1);

            Console.WriteLine(pd1("test1 ", "test2"));
            ProcessDelegate <string, int> pd2 = new ProcessDelegate <string, int>(new Program().ProgramMethod2);

            Console.WriteLine(pd2("text", 3));
                        //key word event
                        Test t = new Test();

            t.ProcessEvent += t_ProcessEvent1;
            t.ProcessEvent += new ProcessDelegateEvent(t_ProcessEvent2);
            Console.WriteLine(000);
            Console.WriteLine(t.Process());
                        //callback
                        Testt t1 = new Testt();
            Testt2            t2 = new Testt2();
            string            s1 = t1.Process("Text1", "Text2", t2.Process1);
            string            s2 = t1.Process("Text1", "Text2", new ProcessDelegate3(t2.Process2));
            string            s3 = t1.Process("Text1", "Text2", t2.Process3);

            Console.WriteLine(s1);
            Console.WriteLine(s2);
            Console.WriteLine(s3);
            Console.ReadKey();
        }
Example #2
0
        /* 声明
         *  public delegate T1 myMethodDelegate( Type1 T2,Type1T3,... );
         *  返回类型以及参数
         * 初始化
         * 初始化一个委托,该委托对指定的类实例调用指定的实例方法。
         * protected Delegate (object target, string method);
         * 参数
         * target Object
         * 类实例,委托对其调用 method。
         * method String
         * 委托表示的实例方法的名称。
         *
         *
         * */

        //简单委托
        static void test17()
        {
            //委托类型 名字=new 委托类型(方法事件)
            /*  调用方法  */
            ProcessDelegate1 pd = new ProcessDelegate1(new Test().Process1);

            Console.WriteLine(pd("Text1", "Text2"));
        }