簡體   English   中英

獲取通用委托返回類型

[英]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.MethodReturnType

  Func<int> action = () => 1;
  Delegate a = action;
  Console.WriteLine(a.Method.ReturnType); // prints System.Int32

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM