首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >委托和等待任务

委托和等待任务
EN

Stack Overflow用户
提问于 2022-05-30 11:52:16
回答 1查看 110关注 0票数 2

创建方法委托时,我遇到了一个问题:

代码语言:javascript
复制
D_AmortizationCalsAsync d_AmortizationCalsAsync = AmortizationCalsAsync; // here i have error

public delegate Func<Task<decimal>> D_AmortizationCalsAsync(int amortization, int installmentNumber);

public async Task<decimal> AmortizationCalsAsync(int amortization, int installmentNumber)
    {
      (...)
    }

Tak AmortizationCalsAsync (int,int)返回类型错误

https://learn.microsoft.com/en-us/dotnet/csharp/misc/cs0407?f1url=%3FappId%3Droslyn%26k%3Dk(CS0407)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 11:57:59

AmortizationCalsAsync返回一个Task<decimal>,而不是一个Func<Task<decimal>>。如果要将其分配给委托,则需要更改委托的类型:

代码语言:javascript
复制
public delegate Task<decimal> D_AmortizationCalsAsync(int amortization, int installmentNumber);

或者使用匿名lambda创建一个具有正确签名和返回类型的函数(即接受2个整数的函数,并返回不带参数的func和Task<decimal>返回类型):

代码语言:javascript
复制
D_AmortizationCalsAsync d_AmortizationCalsAsync = 
    (a, i) => () => AmortizationCalsAsync(a, i);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72433890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档