Я только что наткнулся на шаблон «Отверстие посередине» и думаю, что могу использовать его для удаления некоторого повторяющегося кода, особенно когда я пытаюсь сравнить различные методы и использовать один и тот же код до и после каждого метода.
Мне удалось получить основы работы с кодом ниже.Я начинаю с StartingMethod , основная цель которого - вызвать MainMethod1 & MainMethod2 , но это происходит через PrePostMethod .
Теперь я хочу узнать, как передать параметры и получить возвращаемое значение.Любая помощь будет отличной.
Спасибо.
Код:
public static class HoleInTheMiddle
{
public static void StartingMethod()
{
PrePostMethod(MainMethod1);
PrePostMethod(MainMethod2);
}
public static void PrePostMethod(Action someMethod)
{
Debug.Print("Pre");
someMethod();
Debug.Print("Post");
}
public static void MainMethod1()
{
Debug.Print("This is the Main Method 1");
}
public static void MainMethod2()
{
Debug.Print("This is the Main Method 2");
}
}