gpt4 book ai didi

c# - Action 委托(delegate)可以指向具有返回类型的方法吗?

转载 作者:行者123 更新时间:2023-11-30 14:46:22 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com