[問題] 程序 繼承 的好辦法?

看板C_Sharp作者 (s4300026)時間5年前 (2019/03/09 16:43), 5年前編輯推噓1(102)
留言3則, 2人參與, 5年前最新討論串1/1
各位大大好,個人想詢問繼承的問題, 假設我有個方法執行內容完全,只有在繼承的時候需要多了一些判斷 想詢問該怎麼撰寫會比較好? 下面是情境舉例, 想問有人有好解法嗎? ----- 舉例 ----- 我有個父類別 BackgroundWorker Call_DoWork 執行如下 bool stop = false; protected void Call_DoWork(object sender, DoWorkEventArgs e) { var worker = sender as BackgroundWorker; bool complete = false; while(!worker.CancellationPending & !stop & !complete) { Step1(); if(!worker.CancellationPending & !stop) Step2(); if(!worker.CancellationPending & !stop) Step3(); if(!worker.CancellationPending & !stop) { Step4(); complete = true; } } } 我有個子類別繼承父類別並override Call_DoWork 如下 override protected void Call_DoWork(object sender, DoWorkEventArgs e) { var worker = sender as BackgroundWorker; bool complete = false; while(!worker.CancellationPending & !stop & !complete & rs232.IsOpen) { Step1(); if(!worker.CancellationPending & !stop & rs232.IsOpen) Step2(); if(!worker.CancellationPending & !stop & rs232.IsOpen) Step3(); if(!worker.CancellationPending & !stop & rs232.IsOpen) { Step4(); complete = true; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.235.221 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1552121029.A.214.html ※ 編輯: s4300026 (60.250.235.221), 03/09/2019 16:52:13 ※ 編輯: s4300026 (60.250.235.221), 03/09/2019 17:10:56

03/09 17:45, 5年前 , 1F
把判斷的部分提出來作另一個方法
03/09 17:45, 1F

03/09 17:45, 5年前 , 2F
再override該方法
03/09 17:45, 2F

03/09 17:46, 5年前 , 3F
對耶 我怎麼沒想到,我笨了 哈哈
03/09 17:46, 3F
文章代碼(AID): #1SWtp58K (C_Sharp)