Frage

Ich habe das folgende Stück Code-Muster:

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

Der einzige Unterschied besteht darin, dass der Rückgabetyp und die Anzahl und Arten von Parametern auf die Methoden variieren können.

Ich mag eine generic / Templat-Methode erstellen, die die gesamten Code Griffe mit Ausnahme des „Tun Ihnen etwas Arbeit“ Teil, wie kann es erreicht werden.

War es hilfreich?

Lösung

Ich mag die Aktion

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);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top