templated Delegierten
-
03-07-2019 - |
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.
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