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 に答える