Mega Code Archive

 
Categories / C# / Generics
 

Generic Delegate and non-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("More string data");         MyDelegate d2 = new MyDelegate(MyTarget);         d2(9);         MyGenericDelegate<string> strTarget =             new MyGenericDelegate<string>(StringTarget);         strTarget("Some string data");         MyGenericDelegate<int> intTarget = IntTarget;         intTarget(9);         Console.ReadLine();     }     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);     } }