0

我正在尝试“通用化”我们散布在系统周围的一些代码。

我想要:

  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();
        }
    }
4

1 回答 1

2

看起来您的 dynamicSignature 函数缺少几个参数,因此您需要添加这些参数。此外,您可以将您的 return 语句移到底部,从 try 块中取出,并将您的返回值初始化为默认值:

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

return returnValue;
于 2010-10-21T15:10:49.403 回答