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