1
我努力做到以下幾點:連鎖IF條件並執行第一個條件。在C#
MyObject.If(x => x.ID == 10, new MyAction("ID10")).If(x => x.Value < 20, new MyAction("Value20")).DoSomethingWithMyAction();
myObject的是,我需要檢查一些屬性的對象...
DoSomethingWithMyAction()是一個MyAction擴展,做一些事MyAction的第一個條件失敗了。
如果可能是這樣的:
public static If<T>(this T myobject, Func<T, Boolean> predicate, MyAction action) where T : MyObject {
if (predicate(myobject)
// Return ??? >> Move to Next If
else
// Return action
} // If
然後DoSomethingWithMyAction(),簡直是一個MyAction擴展。
我的問題是: 1 - 如何鏈接中頻; 2 - 如何使DoSomethingWithMyAction()使用第一個IF的MyAction失敗。
謝謝你, 米格爾
在所有應有的尊重,你試圖做的不是慣用的,它是無法維護的。 if/else塊將比這更容易維護。 – 48klocs 2012-07-20 18:00:53