Mega Code Archive

 
Categories / C# Tutorial / Generic
 

Generic Delegate

using System; using System.Collections.Generic; using System.Text;   public delegate void MyGenericDelegate<T>(T arg);   public delegate void MyDelegate(object arg);   class Program   {     static void Main(string[] args)     {       MyDelegate d = new MyDelegate(MyTarget);       d("string");       MyDelegate d2 = new MyDelegate(MyTarget);       d2(1);       MyGenericDelegate<string> strTarget = new MyGenericDelegate<string>(StringTarget);       strTarget("str");       MyGenericDelegate<int> intTarget = IntTarget;       intTarget(9);     }     static void MyTarget(object arg)     {       if(arg is int)       {         int i = (int)arg;         Console.WriteLine("++arg is: {0}", ++i);       }       if(arg is string)       {         string s = (string)arg;         Console.WriteLine("arg in uppercase is: {0}", s.ToUpper());       }     }     static void StringTarget(string arg)     {       Console.WriteLine("arg in uppercase is: {0}", arg.ToUpper());     }     static void IntTarget(int arg)     {       Console.WriteLine("++arg is: {0}", ++arg);     }   }