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的優缺點其實都挺明顯:

優點:

提高了程序員開發時對程序編輯的靈活性,只需要維護自己的項目模塊就好

缺點:

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM