在我寫的一段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