代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 委托_例子 8 { 9 static class Program 10 { 11 // 定义委托(Double类型) 12 delegate double Integand(double x); 13 14 //定义方法 15 static double Method1(double x) 16 { 17 return 2 * x + 1; 18 } 19 20 static double Method2(double x) 21 { 22 return x * x; 23 } 24 25 // 定义是用委托的方法 26 static double DefiniteIntegrate(Integand f, double a, double b) 27 { 28 const int sect = 1000; 29 30 double area = 0; 31 32 double delta = (b - a) / sect; 33 34 for (int i = 0; i < sect; i++) 35 { 36 //此处的 f 就代表 Method1 或是 Method2。 37 //传给他们一个double类型的值,返回一个double类型的值。 38 //此时的double值就是长乘以宽“a + i * delta” 39 area += delta * f(a + i * delta); 40 } 41 42 return area; 43 } 44 45 static void Main(string[] args) 46 { 47 //调用方法 48 //传入一个方法 49 Console.WriteLine(Program.DefiniteIntegrate(Method1, 1, 5)); 50 Console.WriteLine(); 51 Console.WriteLine(Program.DefiniteIntegrate(Method2, 0, 1)); 52 53 Console.ReadKey(); 54 } 55 } 56 } 57