在我写的一段C#中,我需要以相同的方式处理具有相同签名的多个方法。未来还可能有更多这些方法。相反,一遍又一遍地重复同一种逻辑的我还以为下列内容:需要以相同方式处理的多种方法
private delegate bool cleanStep(BuildData bd, out String strFailure);
List<cleanStep> steps = new List<cleanStep>();
steps.Add(WriteReadme);
steps.Add(DeleteFiles);
steps.Add(TFSHelper.DeleteLabel);
steps.Add(TFSHelper.DeleteBuild);
List<cleanStep>.Enumerator enumerator = steps.GetEnumerator();
bool result = true;
while (result && enumerator.MoveNext())
{
result = enumerator.Current.Invoke(build, out strFailure);
if (!result)
{
logger.Write(LogTypes.Error, strFailure);
}
}
我觉得这有一些不错的功能,但同时也感到有点过enginered和混淆。
你能感谢更好的方法吗?
BTW:
- 它并不需要是事务性的。
- strFailure没有隐藏例外它包装他们 完全必要时
感谢。
已经看起来更好。还了解到有关处理统计员的新情况。谢谢。我对break语句有点厌恶,但这里确实有道理。 – KeesDijk 2008-11-10 14:06:34