[英]Get generic delegate return type
我得到了 ac# 方法,它接收一個通用的Delegate
作為參數,並在調用后檢查結果的類型:
public async Task<TResult> InvokeAction<TResult>(Delegate action, object[] actionArgs = null)
{
...
var result = action.DynamicInvoke(actionArgs);
if (result is Task<TResult> task) return await task;
}
如果委托參數的返回類型確實是TResult
而不需要先調用它,有沒有一種方法可以提前檢查? 這不改變參數Func<TResult>
您可以使用Delegate.Method
的ReturnType
:
Func<int> action = () => 1;
Delegate a = action;
Console.WriteLine(a.Method.ReturnType); // prints System.Int32
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.