→ testPtt: 我覺得只能繼承1個應該是沒有必要做這個功能 12/02 19:16
我正在寫一個與硬體溝通的class
但為了方便除錯,我就寫了一個虛擬硬體的class
只要是硬體輸入的部分
舉例來說: 檢查特定IO是 ON/OFF
我就先用 set 把想(ㄐㄧㄚˇ)要(ㄕㄜˋ)的狀態丟進去
然後用 get 讀出來
然後做對應的事情
接著我要寫真的與硬體溝通的class時
我直接繼承原本寫的虛擬class
然後想要把 set 改成 protected
這樣外面的人就看不到了,不會誤用
而我硬體檢查IO後,又可以使用以前寫的 set 做數值儲存
這是我的想法
因此我才在問有沒有類似的功能
※ 編輯: s4300026 (220.134.201.145), 12/03/2017 21:35:36
→ yeo1987: 不太確定你的需求是否父類的set/get用protected就好了? 12/03 23:42
→ lightyen: property裡面get; private set; ? 12/04 00:22
有想過,但我想把它做成 "元件",因此要提供外部呼叫的指令。
※ 編輯: s4300026 (60.250.235.221), 12/04/2017 07:54:21
推 CloudyWing: 繼承權限修飾詞只能放寬不能變嚴格的樣子,如果是同組 12/04 09:46
→ CloudyWing: 件使用,用internal? 12/04 09:46
QAQ
推 Litfal: 在C#這種需求通常是在包一層或用interface吧 12/04 13:04
再包一層感覺很醜... 至於interface,我想不到要怎麼用...
→ testPtt: 如果只是要debug就加上[Conditional("DEBUG")]就好 12/04 13:40
不是debug用,是在真的沒有硬體的時候模擬用,就像是很多驅動軟體都有 "虛擬" 的
像是 虛擬的PCI卡、虛擬的NI卡、虛擬的IO... 等等等
※ 編輯: s4300026 (42.72.195.241), 12/07/2017 20:02:51
→ testPtt: 那就用#define#if去過濾程式碼 c++也常這樣用 12/08 19:11
→ s4300026: 不懂... 不過算了,我再想想辦法 12/09 22:02