溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【C#懶蛋編程——5分鐘經(jīng)驗分享】02使用partial關(guān)鍵字,分離代碼

發(fā)布時間:2020-07-08 04:53:54 來源:網(wǎng)絡(luò) 閱讀:925 作者:老G 欄目:游戲開發(fā)

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

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

1.

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

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

2.

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

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

3.

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI