在开始和结束时调用方法 - 在C#中有更好的方法吗?

leo*_*ios 2 c# coding-style

我有几种方法具有folling结构:

    public void doWhatever()
    {
     methodToPrepareEnvironment();
     // do something
     methodToResumeEnvironment();
    }
Run Code Online (Sandbox Code Playgroud)

我所有的"doWhatever"类型方法都调用这些准备/恢复方法,所有这些方法都只调用了1个prepare和1个resume方法.是否有更好的方法来实现这一点,而无需在所有我的doWhatever方法的开头和结尾调用准备和恢复方法?我觉得我错过了一些非常基本的东西.请注意,doWhatever方法无法组合,它们每个都需要独立,每个方法都需要准备环境,完成一些任务然后恢复环境.

谢谢.

Phi*_*Gan 5

通过战略性地使用访问修饰符,您可以确保外部调用始终在方法调用之前和之后,几乎不重复,如下所示:

public void DoWhatever()
{
    DoAction(DoingWhatever);
}

private void DoingWhatever()
{
    // ...
}

private void DoAction(Action action)
{
    methodToPrepareEnvironment();

    action();

    methodToResumeEnvironment();
}
Run Code Online (Sandbox Code Playgroud)

An Action是一个委托,表示没有返回值的方法.