1. 程式人生 > >【C#懶蛋編程——5分鐘經驗分享】02使用partial關鍵字,分離代碼

【C#懶蛋編程——5分鐘經驗分享】02使用partial關鍵字,分離代碼

編輯 有用 根據 數據 有意 part 關鍵字 自動 conf

因為篇幅很短,所以嘗試全文字寫法。幾分鐘看完的文字也沒必要用十幾分鐘寫完是吧。

C#中的partial關鍵字,是一個非常有用的東西,尤其是在代碼組織方面。

1.

每一個項目都會構建大量的class文件,也需要使用這些class創建非常多的對象。但是出於業務安全性和調試方便,在創建對象前需要對對象的參數進行有效性檢測(例如斷言),而對象的創建,是一個非常復雜的事情,有時需要一組函數才能完成。這兩者(class本身的代碼和創建對象的代碼)的代碼混在一起,搞得單個class文件非常臃腫。

partial可以把類邏輯(new我還是放在這裏面的),和對象創建代碼徹底分開。對我來說這是一個很有用的功能。一般構建一組class(通常是一個父類和一堆子類),我會分成若幹文件,Parent,Child1,Child2……等,再使用一個專門的XXXHelper文件來編寫各種Child的對象生成代碼。Helper中可能是instance,create等寫法,也可能是各種工廠,再加上一些有效性檢測和異常處理。這樣代碼非常清晰,尤其是Child的代碼可以寫的很幹凈。

2.

partial還有一類非常有意思的寫法。很多項目都喜歡編寫全局工具或數據類,名叫Global或者Config等,裏面有很多數據和函數。根據經驗判斷,真正全局所有模塊使用的東西不會很多。很多東西都只是在部分模塊中使用。時間久的話,你根本分不清楚這些函數或數據是對應哪個模塊下面的,這時候partial的分散寫法就有很大優勢了。你可以寫一些分散文件,集成到各個模塊的文件夾下面,當然各個模塊通用的還是放到一個文件裏面好,partial可以保證你依然能通過同一個全局名字訪問他。

由於partial關鍵字,代碼都在同一個類名字下面,你可以在不同的文件中自由移動這些代碼。

3.

partial對自動化支持非常有用,你可以把代碼分成兩部分,一部分是業務代碼,一部分是自動化生成代碼(例如很多領域的UI編輯器就是這麽幹的,C++的做法也是類似,只是沒partial用的別的方法,思路都是一樣)。因為在不同文件中,自動化生成代碼不會幹擾業務代碼。自動化生成對於提高開發效率至關重要。

【C#懶蛋編程——5分鐘經驗分享】02使用partial關鍵字,分離代碼