Шаблонные делегаты - PullRequest
       19

Шаблонные делегаты

1 голос
/ 03 октября 2008

У меня есть следующий фрагмент кода:

void M1(string s, string v)
{
  try
  {
    // Do some work
  }
  catch(Exception ex)
  {
    // Encapsulate and rethrow exception
  }
}

Единственное отличие состоит в том, что тип возвращаемого значения, а также количество и типы параметров для методов могут различаться.

Я хочу создать универсальный / шаблонный метод, который обрабатывает весь код, за исключением части «Сделай что-нибудь», как этого достичь.

1 Ответ

1 голос
/ 03 октября 2008

Мне нравится Действие

public static void Method(Action func)
{
    try
    {
        func();
    }
    catch (Exception ex)
    {
        // Encapsulate and rethrow exception
        throw;
    }
}



public static void testCall()
{
    string hello = "Hello World";

    // Or any delgate
    Method(() => Console.WriteLine(hello));

    // Or 
    Method(() => AnotherTestMethod("Hello", "World"));

}

public static void AnotherTestMethod(string item1, string item2)
{
    Console.WriteLine("Item1 = " + item1);
    Console.WriteLine("Item2 = " + item2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...