【发布时间】:2017-02-22 10:34:05
【问题描述】:
我最近想出了如何从方法中返回方法/函数,例如:
public static Func<string, int> Parse() {
return x => Int32.Parse(x);
}
纯粹出于好奇,我想知道我能走多远。是否有可能以某种方式返回Func<Func<string, int>, int>?
public static Func<Func<string, int>, int> PlusSomething(this Func<string, int> parser) {
return x => x + parser; //Obviously doesn't work
}
我设法做的最接近的事情是
public static Func<string, int, int> PlusSomething(this Func<string, int> parser) {
return (x, y) => parser(x) + y;
}
【问题讨论】:
-
您有错误信息吗?为什么
this扩展方法前缀? -
有点不清楚您要达到的目标;你能解释一下想要的结果吗?
-
虽然这个问题已经得到解答,但我试图让它更清楚一点:我希望它接受一个值并返回一个值,而不是一个接受一个值并返回一个值的方法返回一个函数(然后它会计算值)。这就是前 3 行代码的作用。然后我问自己是否有可能创建一个将函数作为参数并再次返回该函数(不进行任何计算)的方法,以及新方法实际上应该做的事情。