我正在尝试编写一个方法来返回其自身的一个实例。 伪代码为
Func<T,Func<T>> MyFunc<T>(T input)
{
//do some work with input
return MyFunc;
}
看起来很简单。但是我在定义返回类型时遇到问题。 返回类型应该是委托(delegate)
which takes T as parameter, then returns a function
which takes T as parameter, then returns a function
which takes T as parameter, then returns a function
...recursive definition
我确信有一些我没有注意到的细微之处。有人可以为我指出吗? 谢谢。
最佳答案
你可以这样做:
delegate F<T> F<T>(T obj);
F<T> MyFunc<T>(T obj)
{
return MyFunc;
}
但它几乎没有用。你唯一真正能做的就是像这样的事情,这很奇怪:
void Main()
{
MyFunc(1)(2)(3)(4);
}
delegate F<T> F<T>(T obj);
F<T> MyFunc<T>(T obj)
{
Console.WriteLine(obj);
return MyFunc;
}
关于c# - 如何在 C# 中返回委托(delegate)函数或 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813752/