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(); }
/* 声明 * 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")); }