日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
LINQ構(gòu)建框架設(shè)計(jì)學(xué)習(xí)筆記

LINQ有很多值得學(xué)習(xí)的地方,這里我們主要介紹LINQ構(gòu)建框架設(shè)計(jì),包括介紹Keith Farmer提到的避免子類的方法等方面。

創(chuàng)新互聯(lián)公司主營(yíng)昭蘇網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,手機(jī)APP定制開(kāi)發(fā),昭蘇h5成都小程序開(kāi)發(fā)搭建,昭蘇網(wǎng)站營(yíng)銷推廣歡迎昭蘇等地區(qū)企業(yè)咨詢

如今,LINQ的版本發(fā)布已經(jīng)塵埃落定,是時(shí)候思考如何使用它了。Keith Farmer甚至談到了使用LINQ以消除子類。不過(guò),在我們了解這些之前,還是先看看微軟的官方指南吧。

根據(jù)LINQ構(gòu)建框架設(shè)計(jì)指南的精神,微軟發(fā)布了基于LINQ構(gòu)建框架設(shè)計(jì)指南。LINQ構(gòu)建框架設(shè)計(jì)指南涵蓋了諸如API的設(shè)計(jì)與行為等主題。與很多公司制定的編碼指南不同,它并沒(méi)有包含設(shè)計(jì)的細(xì)枝末節(jié),例如命名模式與格式,除非它們牽涉到公有的API庫(kù)。

大多數(shù)框架設(shè)計(jì)指南最終都能夠找到與FxCOP集成的方式。FxCOP是一個(gè)代碼分析工具,它被微軟和其它公司用來(lái)確保編碼的一致性。

在概括的介紹之后,該文檔介紹了擴(kuò)展方法(Extension Methods)和泛型委托Func、Action以及Expression。在指南給出的標(biāo)準(zhǔn)警告中,有一個(gè)與命名空間沖突無(wú)關(guān)的指導(dǎo)——它要求在普通方法能夠?qū)崿F(xiàn)的情況下,不要濫用擴(kuò)展方法。當(dāng)兩個(gè)庫(kù)都公開(kāi)了相同類型的擴(kuò)展方法時(shí),會(huì)發(fā)生方法名稱的沖突。一旦發(fā)生,只能導(dǎo)入一個(gè)庫(kù),另一個(gè)庫(kù)則必須使用完整的名稱才能被引用。

在擴(kuò)展LINQ一節(jié)中,對(duì)于如何命名泛型類型有一個(gè)頗有助益的建議。在類型名為S以指代包含元素項(xiàng)的集合時(shí),名為T的泛型類型總是指代集合的元素項(xiàng)(items)。雖然這不是強(qiáng)制性的,但至少有助于閱讀內(nèi)建方法(built-in methods)。

對(duì)于性能,指南提出的一個(gè)建議是,如果性能牽涉到計(jì)算集合的元素總數(shù),則實(shí)現(xiàn)ICollection有助于提高性能。當(dāng)你只能實(shí)現(xiàn)IEnumerable時(shí),就必須遍歷整個(gè)集合才能得到集合的元素總數(shù)。

現(xiàn)在,再回頭看看Keith Farmer提到的避免子類的方法:

我過(guò)去一直在考慮的一件事情是削減類的職責(zé),使其只具備基本的定義:恰如其分的屬性定義,與屬性對(duì)應(yīng)的方法,以及構(gòu)造器和類型轉(zhuǎn)換器。

然后使用擴(kuò)展方法定義適當(dāng)?shù)牟僮?,而不需要維護(hù)類作為自身實(shí)體的概念,這樣就沒(méi)有必要?jiǎng)?chuàng)建子類型了(即使子類型是可行的)。

例如,一個(gè)Node不需要知道Graph的操作也能夠工作良好,也可以認(rèn)為Graph不需要了解IsNetworkRouter的內(nèi)容。

在這種情況下,類似于Traverse(GraphLink)這樣的方法就屬于Graph中很好的方法定義,而類似于 FindLeastWorkRoute(Node, Node)這樣的方法,由于它依賴于GraphLink的特定子類型的實(shí)現(xiàn)細(xì)節(jié)(即它具有一個(gè)關(guān)聯(lián)的Work衡量標(biāo)準(zhǔn)),那么在我看來(lái),這樣的方法***定義為一個(gè)擴(kuò)展方法。

如果僅僅是為了實(shí)現(xiàn)應(yīng)用程序特定的邏輯,而去創(chuàng)建一個(gè)自定義子類型,就會(huì)擾亂我們關(guān)注的類(例如,Graph就勝過(guò)同時(shí)定義Graph和GraphLink),而通過(guò)擴(kuò)展方法就可以避免這樣的情況。以上介紹LINQ構(gòu)建框架設(shè)計(jì)指南。


分享文章:LINQ構(gòu)建框架設(shè)計(jì)學(xué)習(xí)筆記
文章來(lái)源:http://m.5511xx.com/article/djoecej.html