我有两个函数,一个接收函数作为参数并尝试返回传递函数的返回结果,第二个函数返回对象,我后来投射。
object function1(Action act) {
object result = act();
// do something with result
return result;
}
object function2() {
return (object)"string as object";
}
它说行动没有返回类型,我想这样称呼它:
function1(() => function2); // so it'll return "string as object" as object.
答案 0 :(得分:4)
您需要更改Action
Func<object>
,因为Action
封装了一个方法,但没有返回值。
另一件需要改进的事情是你可以将function1转换为泛型,这样你就不必处理施法
T function1<T>(Func<T> act)
{
T result = act();
// do something with result
return result;
}
string function2()
{
return "string as object";
}
然后像这样使用它
string myString = function1(function2);