原文:http://blog.csdn.net/wangdan199112/article/details/18796527函数
在学委托这块儿的时候,函数参数这块不是很理解,因而针对一个例子作了深刻的理解,和你们分享一下。spa
首先,先说一下我对委托的理解,委托就是一个能够执行多种同类功能的变量,之因此它是执行同类功能的变量,是由于它只能接受一个函数,而一个函数只能执行一种类型的功能,它的做用就是提升程序的灵活性,和扩展性,好比说若是咱们不用委托,可能一个函数只能执行加法运算,可是若是用了委托,它能够同时执行加减乘除,也就是说这个程序的功能扩展了,工做的灵活性也提升了。.net
下面是一段有关幂和乘法运算同时进行的代码:code
- <span style="font-size:18px;"> namespace ConsoleApplication16
- {
- delegate double DoubleOp(double x);
-
- class Program
- {
- static void Main(string[] args)
- {
-
- DoubleOp[] operations =
- {
- new DoubleOp (MathOperations .MultiByTwo ),
- new DoubleOp (MathOperations .Square )
- };
- for (int i=0;i<operations .Length ;i++)
- {
- Console.WriteLine("Using operations[{0}]", i);
-
- ProcessAndDisplayNumber(operations[i], 3.0);
- Console.WriteLine();
- }
- }
- public static void ProcessAndDisplayNumber(DoubleOp action, double value)
- {
- double result = action(value);
- Console.WriteLine("Value is {0},result of operation is {1}", value, result);
- }
- }
-
- class MathOperations
- {
- public static double MultiByTwo(double value)
- {
- return value * 2;
- }
- public static double Square(double value)
- {
- return value * value;
- }
- }
- }
- </span>
这段代码运行以后的结果以下:blog

在敲代码以前,我把源码看了一遍,不是很明白,就先敲完了,让它运行,看到运行结果,感受代码明白了,主要就是没有理清它的逻辑,因此,有时候光想不作是不行的,先作了,也许就明白了。ip