1:
Func<int, int> myFunc = new Func<int,int>(delegate(int x) {
return x + 1;
});
2:
Func<int, int> myFunc = delegate(int x) {
return x + 1;
};
3:
Func<int, int> myFunc = x => x + 1;
它们之间有什么区别?
1:
Func<int, int> myFunc = new Func<int,int>(delegate(int x) {
return x + 1;
});
2:
Func<int, int> myFunc = delegate(int x) {
return x + 1;
};
3:
Func<int, int> myFunc = x => x + 1;
它们都是相同的 - 只是语法糖,编译成相同的东西。
也就是说 - 通过类型推断和其他编译器好处,3只是一种非常简短的方式来表示1。
Func
是一个已定义的委托类型。而匿名函数则没有命名的委托类型。 - OdedFunc
只是委托类型的名称。 - Jon Skeet(int i) { return i; }
与数学概念中的函数非常相似,因此“匿名函数”应该更适合那里:( - nawfal