簡體   English   中英

傳入委托作為參數時返回通用類型的方法

[英]Method to return a generic type when passing in a delegate as a parameter

我正在嘗試“通用化”我們在系統中散布的一些代碼。

我想要:

  1. 返回泛型類型,
  2. 傳入某種包含要調用的方法的委托。

我對泛型非常陌生,因此對您的幫助表示贊賞。

下面是我的空中手指所在的位置(!)

public static T ReturnSingleObject<T>(Func<string, int, T> dynamicSignature)
    {
        T returnValue;
        ServiceReference wCFService;
        try
        {
            wCFService = new BusinessServiceClient();

            returnValue = dynamicSignature();

            //returnValue = wCFService.AMETHOD(PARAM1, PARAM2);
            return returnValue;
        }
        catch (Exception)
        {
            if (wCFService != null) wCFService.Abort();
            throw;
        }
        finally
        {
            if (wCFService != null) wCFService.Close();
        }
    }

看起來您的dynamicSignature函數缺少幾個參數,因此您需要添加這些參數。 同樣,您可以將return語句移至底部,而不是try塊中,並將返回值初始化為默認值:

T returnValue = default(T);
...
try
{
   ...
   returnValue = dynamicSignature(somestring, someint);
   ...
}
...

return returnValue;

您應該查看該鏈接,該鏈接涉及聲明通用委托: http : //msdn.microsoft.com/zh-cn/library/sx2bwtw7.aspx

暫無
暫無

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

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