virtual, partial and namespace

virtual, partial and namespace

virtual

父類別方法須宣告為 virtual 或 abstract, 子類別才能用 override 關鍵字複寫, 否則無法複寫父類別的組件

partial (namespace 與 partial 意義&好處上相似)

partial 關鍵字用來將同一個 class 拆成多個檔案, compile 後合成同一個檔案,
拆成不同檔案可以讓多人同時開發, 也可以方便實作 MVC,
.NET 的 Form 預設會有 .cs 與 .designer.cs 檔, 這兩個檔案中就會強制設定 partial,
簡單來說這兩個檔案是用來實作 MVC, .cs 實作 model 與 controller, .designer.cs 實作 view,
為了讓 MVC 更清晰, 也可以在建一個 .cs 檔實作 controller,
例如:
第一個 .cs          實作 model
第一個 .designer.cs 實作 view
第一個 .cs          實作 controller

 

可以將 class, struct, interface 分割成數個檔案
class為例:
A.cs 檔案中有 partial class A{ A1,A2 }
B.cs 檔案中有 partial class A{ B1,B2 }
因此 class A 其實有 A1,A2,B1,B2 等內容, 只是將 class 分開放置不同 .cs 檔案中

換而言之, 下列也會有累加效果
partial class A:Interface1, Interface2{}
partial class A:Interface3{}

相當於 partial class A:Interface1, Interface2, Interface3{}

partial 好處:
1.若需多人同時開發同一個 class 時, 可同時進行
2.後續新增部分程式可不修改原有 class 情況下進行新增(前提是原有 class 需要宣告 partial )