1. class Program  

  2. {  

  3.         // 泛型委托,与普通委托类似,不同之处只在于使用泛型委托要指定泛型参数          

  4.         public delegate T MyGenericDelegate<T>(T obj1,T obj2);  

  5.   

  6.         int AddInt(int x, int y)  

  7.         {  

  8.             return x + y;  

  9.         }  

  10.   

  11.         string AddString(string s1, string s2)  

  12.         {  

  13.             return s1 + s2;  

  14.         }  

  15.          

  16.         static void Main(string[] args)  

  17.         {  

  18.             Program p = new Program();  

  19.              

  20.             MyGenericDelegate<int> intDel;  

  21.             intDel = p.AddInt;  

  22.             Console.WriteLine("int代理的值是{0}", intDel(100, 200));  

  23.   

  24.             MyGenericDelegate<string> stringDel;  

  25.             stringDel = p.AddString;  

  26.             Console.WriteLine("string代理的值是{0}", stringDel("aaa""bbb"));  

  27.         }  

  28. }