Lambda 匿名方法

可以在需要委託的任何地方分配匿名方法:

Func<int, int> square = delegate (int x) { return x * x; }

Lambda 表示式可用於表達相同的內容:

Func<int, int> square = x => x * x;

在任何一種情況下,我們現在都可以呼叫 square 中儲存的方法,如下所示:

var sq = square.Invoke(2);

或者作為速記:

var sq = square(2);

請注意,對於賦值型別安全,匿名方法的引數型別和返回型別必須與委託型別的引數型別和返回型別匹配:

Func<int, int> sum = delegate (int x, int y) { return x + y; } // error
Func<int, int> sum = (x, y) => x + y; // error