不要在wpf視窗類的建構函式中拋異常

2021-09-05 18:56:50 字數 473 閱讀 4571

用wpf一段時間了,裡面有許多東西還是和winform有許多不同的,其中有一點需要注意的就是:

不要在wpf視窗類的建構函式中拋異常

為什麼呢,先看看這段**:

public window1()

執行玩後,按f5除錯結果如下:

這麼樣,一頭霧水吧,並且還定位不到異常丟擲的**。這確實和vs2008那強大的除錯功能不大匹配。

那我們的初始化如果確實要拋異常怎麼辦呢,很簡單,在window_loaded裡面去拋,這樣可以被ide捕獲到,除錯方便多了。

測試結果如下:

這才是我們要的。

不要在建構函式中呼叫可重寫的方法

原因 非密封型別的構造函式呼叫其類中定義的虛方法。規則說明 呼叫虛方法時,直到執行時之前都不會選擇執行該方法的實際型別。構造函式呼叫虛方法時,可能尚未執行呼叫該方法的例項的建構函式。如何修復衝突 要修復與該規則的衝突,請不要從某型別的建構函式中呼叫該型別的虛方法。何時禁止顯示警告 不要禁止顯示此規則...

不要在建構函式和析構函式中呼叫虛函式

提到建構函式和析構函式,想必大家肯定是非常了解,但是能否在建構函式或是析構函式中呼叫虛函式呢?答案是千萬不要這麼做,這麼做不會得到大家想要的結果。首先提一下建構函式,建構函式的順序是從基類開始構造 子類,如果在基類中呼叫虛函式,由於建構函式基類中僅存在自身 或其父類,如果存在 不會根據虛函式表的規則...

C 不要在建構函式和析構函式中呼叫虛函式

這裡先執行個示例 include using namespace std class base virtual void fun virtual void fun 0 base class derived public base virtual void fun virtual void fun d...