目前我的代码看起来像这样
Status("Start Step 1");
result = Step1();
Status("End Step 1", result);
Status("Start Step 2");
result = Step2();
Status("End Step 2", result);
Status("Start Step 3");
result = Step3();
Status("End Step 3", result);
Run Code Online (Sandbox Code Playgroud)
是否有可能以某种方式重构此代码并摆脱状态行. - 但是,在每个步骤的开始和结束时更新状态非常重要.
我想过将状态行移动到Step1,2,3调用中,但这会使方法变得混乱.
public void ExecuteAndLog(Func<T> func, string startMessage, string endMessage) {
Status(startMessage);
var result = func;
Status(endMessage, result);
}
Run Code Online (Sandbox Code Playgroud)
有明显的调用
您可以根据需要进行优化.例如,建立在前一个:
public void ExecuteAndLog(Func<T> func, string message) {
ExecuteAndLog(func, "Start " + message, "End " + message);
}
Run Code Online (Sandbox Code Playgroud)
使调用稍微简单甚至
public void ExecuteAndLog(Func<T> func, int stepNumber) {
ExecuteAndLog(func, String.Format("Step {0}", stepNumber));
}
Run Code Online (Sandbox Code Playgroud)
建立在以前.所以现在你可以说
ExecuteAndLog(Step1, 1);
ExecuteAndLog(Step2, 2);
ExecuteAndLog(Step3, 3);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
582 次 |
| 最近记录: |