Action 委托(delegate)可以指向具有返回类型的方法吗? 例如
Action a = () => Add();
int Add()
{
return 5 + 6;
}
上面的代码可以编译。现在,如果我将上面的内容写成
Action a = new Action(Add);
这不会编译。谁能帮我理解这背后的逻辑?
最佳答案
Action a = () => Add();
int Add()
{
return 5 + 6;
}
在功能上等同于
Action a = ExecuteAdd;
int Add()
{
return 5 + 6;
}
void ExecuteAdd()
{
Add();
}
Action a = new Action(ExecuteAdd);
会编译。
原因是 () => Add();
实际上创建了一个 anonymous method .将其分配给 Action
类型的变量会推断出返回类型 void
。
关于c# - Action 委托(delegate)可以指向具有返回类型的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49261373/