我有一個正常的類叫做BaseView
虛擬方法DisplayView
。該方法調用GetHeader
和GetBody
虛擬方法來獲取頁面的內容。然後我會創建一個繼承自BaseView
的類,並重寫需要顯示內容的方法,而不是基類的方式。C#繼承最佳做法
我的問題是,雖然這很好,但在運行代碼分析時,我被警告不要直接調用虛函數。
我應該在覆蓋虛函數的基類上創建另一個類圖層,並且只能從那裏繼承嗎?
直接使用虛擬方法有什麼缺點?
編輯:警告是:
CA2214:Microsoft.Usage:XXX包含導致 呼叫到由類定義的虛擬方法的調用鏈。審查意想不到的後果
請顯示確切的警告消息 – 2011-12-14 11:07:19
在派生類方法實現中添加新的/覆蓋關鍵字,可能會發出此警告。 – Maheep 2011-12-14 11:08:16