1. 程式人生 > 實用技巧 >C# 中Partial的用法

C# 中Partial的用法

C# 中Partial的用法

在學習中又開始接觸新的小知識了,記錄一下,方便以後複習。

Partial

C#2.0可以將類,結構或介面的定義拆分到兩個或多個原始檔中,在類宣告前新增Parrtial關鍵字即可

例:

//源class  
public
class ToDo { public string name { get; set; } public string password { get; set; } public bool judge(string Name, string
Password) { if (Name == name && password == Password) { return true; } return false; } }
//用partial後拆分為一下
public partial class TODO { public string name { get; set; } public string password { get
; set; } }
public partial class TODO { public bool judge(string Name, string Password) { if (Name == name && password == Password) { return true; } return false; } }
//由於擁有Parial指定後,不管分為幾個類,class指標始終指向TODO,所以可以呼叫其中的所有屬性,哈哈哈,挺好玩的

使用Partial需要注意以下一些情況

1、使用partial 關鍵字表明可在名稱空間內定義該類、結構或介面的其他部分

2、所有部分都必須使用partial 關鍵字

3、各個部分必須具有相同的可訪問性,如public、private 等

4、如果將任意部分宣告為抽象的,則整個型別都被視為抽象的

5、如果將任意部分宣告為密封的,則整個型別都被視為密封的

6、如果任意部分宣告繼承基類時,則整個型別都將繼承該類

7、各個部分可以指定不同的基介面,最終型別將實現所有分部宣告所列出的全部介面

8、在某一分部定義中宣告的任何類、結構或介面成員可供所有其他部分使用

應用場景

可以使用partial class的場景很多。這裡分析一個ORM的例子。系統中有一個Cat類,屬性ID、Age、Weight都需要儲存到資料庫中,一個資訊系統中常見的需求。通過讀取資料庫的結構,可以用工具生成Cat類的程式碼。並且ORM框架支援了從資料庫資訊生成Cat物件。

現在的Cat什麼動作都沒有,客戶說,我們需要一個Miaow()的函式。這時就需要對ORM生成的Cat類進行擴充套件了。可以肯定地一點是,我們不能修改自動生成的程式碼,因為這會牽涉到資料庫結構與程式碼同步的問題。解決這個需求有兩種方法:繼承方式擴充套件,partial class擴充套件。

優缺點

Partial的優缺點其實都挺明顯:

優點:

提高了程式設計師開發時對程式編輯的靈活性,只需要維護自己的專案模組就好

缺點:

降低了程式邏輯的可讀性,增加了維護的難度