原文: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