看板 C_Sharp 關於我們 聯絡資訊
※ 引述《NewMyLife (新人生)》之銘言: : 我有個主函式main,裡面包含一些彼此相依的小函式ABC : 其中一個失敗就不打算再執行後續的 : public bool main() : { : bool ststus = false; : status = A(); : writeLog(status, Alog);//無論失敗與否都寫出執行狀態、記錄 : if(!status) return false;//失敗的話就跳出,不執行後續 : status = B(); : writeLog(status, Blog); : if(!status) return false; : status = C(); : writeLog(status, Clog); : if(!status) return false; : return true; : } : 想請問有沒有好的寫法流程可以捨去重覆的 writeLog 及 if(!status) return false; : 或是像try-catch那樣一發現有exception就跳出(只是這邊是一發現false就跳出) : 希望學習好的思考方式及撰寫流程 : 懇請版友不吝指點 : 十分感激 void Main() { Func<Func<bool>, string, bool> exec = (m, log) => { var r = m(); writeLog(r, log); return r; }; if (!exec(A, "Log A")) return; if (!exec(B, "Log B")) return; if (!exec(C, "Log C")) return; } private void writeLog(bool r, string log) { Console.WriteLine("{0} {1}", log, r); } bool A() { return true; } bool B() { return true; } bool C() { return false; } -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.252.233
NewMyLife:真是謝謝您,是另一條好想法呢! 10/09 22:34