您好,登錄后才能下訂單哦!
因為篇幅很短,所以嘗試全文字寫法。幾分鐘看完的文字也沒必要用十幾分鐘寫完是吧。
C#中的partial關鍵字,是一個非常有用的東西,尤其是在代碼組織方面。
1.
每一個項目都會構建大量的class文件,也需要使用這些class創建非常多的對象。但是出于業務安全性和調試方便,在創建對象前需要對對象的參數進行有效性檢測(例如斷言),而對象的創建,是一個非常復雜的事情,有時需要一組函數才能完成。這兩者(class本身的代碼和創建對象的代碼)的代碼混在一起,搞得單個class文件非常臃腫。
partial可以把類邏輯(構造函數我也算成是類邏輯的代碼),和對象創建代碼徹底分開。對我來說這是一個很有用的功能。一般構建一組class(通常是一個父類和一堆子類),我會分成若干文件,Parent,Child1,Child2……等,再使用一個專門的XXXHelper文件來編寫各種Child的對象生成代碼。Helper中可能是instance,create等寫法,也可能是各種工廠,再加上一些有效性檢測和異常處理。這樣代碼非常清晰,尤其是Child的代碼可以寫的很干凈。
2.
partial還有一類非常有意思的寫法。很多項目都喜歡編寫全局工具或數據類,名叫Global或者Config等,里面有很多數據和函數。根據經驗判斷,真正全局所有模塊使用的東西不會很多。很多東西都只是在部分模塊中使用。時間久的話,你根本分不清楚這些函數或數據是對應哪個模塊下面的,這時候partial的分散寫法就有很大優勢了。你可以寫一些分散文件,集成到各個模塊的文件夾下面,當然各個模塊通用的還是放到一個文件里面好,partial可以保證你依然能通過同一個全局名字訪問他。
由于partial關鍵字,代碼都在同一個類名字下面,你可以在不同的文件中自由移動這些代碼。
3.
partial對自動化支持非常有用,你可以把代碼分成兩部分,一部分是業務代碼,一部分是自動化生成代碼(例如很多領域的UI編輯器就是這么干的,C++的做法也是類似,只是沒partial用的別的方法,思路都是一樣)。因為在不同文件中,自動化生成代碼不會干擾業務代碼。自動化生成對于提高開發效率至關重要。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。