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);
}
}