static void Main(string[] args) { MyDele <int> deleAdd = new MyDele <int>(Add); int result1 = deleAdd(100, 200); Console.WriteLine("The result is {0}.", result1); Console.WriteLine(deleAdd.GetType()); MyDele <double> deleMul = new MyDele <double>(Mul); double result2 = deleMul(300, 400); Console.WriteLine($"The result is {result2}."); Console.WriteLine(deleMul.GetType()); }
static void Main(string[] args) { //Console.WriteLine("Hello World!"); //MyDele dele1 = new MyDele(M1); //dele1 += (new Student()).SayHello ; //dele1.Invoke(); //dele1(); MyDele dele = new MyDele(Add); int res = dele(100, 200); Console.WriteLine(res); MyDele <int> deleAdd = new MyDele <int>(Add); int result = deleAdd(100, 200); MyDele <double> deleMul = new MyDele <double>(Mul); double mulRes = deleMul(3.0, 4.0); Console.WriteLine(mulRes); Console.WriteLine(deleAdd.GetType().IsClass); //Action<string,string > action = new Action<string,string> (SayHello); //action("Tim","Mike"); Action <string, int> action = new Action <string, int>(SayHello); action("Tim", 3); Func <int, int, int> func = new Func <int, int, int>(Add); int res2 = func(100, 200); Console.WriteLine(res2); //lambda --anonymous,inline method var func1 = new Func <int, int, int>((a, b) => { return(a + b); }); int res3 = func(100, 200); func = (x, y) => { return(x * y); }; res3 = func(3, 4); Console.WriteLine(res3); DoSomeCalc((a, b) => { return(a * b); }, 100, 200); }