創建方法委托,我遇到了一個問題:
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://docs.microsoft.com/en-us/dotnet/csharp/misc/cs0407?f1url=?appId=roslyn&k=k(CS0407)
uj5u.com熱心網友回復:
AmortizationCalsAsync回傳 a Task<decimal>,而不是 a Func<Task<decimal>>。如果要將其分配給委托,則需要更改委托的型別:
public delegate Task<decimal> D_AmortizationCalsAsync(int amortization, int installmentNumber);
或者使用匿名 lambda 創建一個具有正確簽名和回傳型別的函式(即一個接受 2 個整數并回傳一個沒有引數和Task<decimal>回傳型別的 func 的函式):
D_AmortizationCalsAsync d_AmortizationCalsAsync =
(a, i) => () => AmortizationCalsAsync(a, i);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/482861.html
下一篇:xml資料中串列的一項
