昨天說委派讓我們可以傳遞方法,到C#2.0時委派語法有些簡化,也能實作匿名方法來傳遞。
昨天提到C#1.0的委派撰寫方式如下:
而C#2.0可以省略new委派型別的字樣
委派 委派s = new 委派(通知A);  //省略前
委派 委派s = 通知A;   //省略後
昨天還說我們把方法交給委派物件來傳遞:
public class 計算
{
    public delegate void 委派();
    public void 計算總和(委派 被委派的事情)
    {
        int 總和 = 0;
        for (int j = 0; j <= 10; j++)
        {
            總和 = 總和 + j;
        }
        被委派的事情.Invoke();
    }
}
所以在C#2.0中使用計算物件中的委派,可以省略new委派型別
在C#2.0傳遞委派時也可以省略宣告委派型別,直接把通知A方法傳遞給計算總和方法:


可以看到編譯器會自動幫我們將方法包裝成,傳入型別定義的new委派。
C# 2.0開始提供匿名函式(方法就是函式),有些書會寫成匿名方法,意思是說,若我們要傳遞的方法很簡單,其實只有委派對象要用,可以delegate省略方法宣告。
例如以下通知A方法的動作只有console
不撰寫方法A的話,在C#2.0可以成以下匿名函式:
算數.計算總和( delegate {Console.WriteLine("報告A已經計算完成"); } );
沒有傳入值就不用寫括號,要寫括號也可以:
如果有傳入值就寫在括號裡: