2014年5月23日 星期五

[VB]shadow vs override

因為List類別雖然好用,但卻沒有提供事件(List發生了甚麼是外面都不知道)因此想說幫他加個事件,有幾個選擇
1. 直接繼承List,重寫Add
2. 繼承IList,時做全部的介面
3. 開新類別myList,建立私人成員_List,只需開放想開放的方法
想說要用第一種方法做,但又不想加入一個新的Add function(ex:myAdd)怕用的人會用錯@@~。問了同事之後知道c#有override跟new可以覆蓋或隱蔽parent class的方法,可以參考這篇的說明,如果不懂覆寫跟隱蔽的差異的話。compiler預設是會用隱蔽的方式,但還是需要加上new的關鍵字,否則會有warning
但因為我是用VB,關鍵字竟然硬是跟C#不一樣,用override跟Shadows...,可以參考MSDN上的文章簡單的說如果方法要被override在父類別裡就要宣告成overridable。當然,List的成員都沒有被宣告成overridable,所以只能用shadows。

沒有留言:

張貼留言