成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

LINQ構建框架設計學習筆記

開發 后端
這里介紹LINQ構建框架設計涵蓋了諸如API的設計與行為等主題。與很多公司制定的編碼指南不同,它并沒有包含設計的細枝末節。

LINQ有很多值得學習的地方,這里我們主要介紹LINQ構建框架設計,包括介紹Keith Farmer提到的避免子類的方法等方面。

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

根據LINQ構建框架設計指南的精神,微軟發布了基于LINQ構建框架設計指南。LINQ構建框架設計指南涵蓋了諸如API的設計與行為等主題。與很多公司制定的編碼指南不同,它并沒有包含設計的細枝末節,例如命名模式與格式,除非它們牽涉到公有的API庫。

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

在概括的介紹之后,該文檔介紹了擴展方法(Extension Methods)和泛型委托Func、Action以及Expression。在指南給出的標準警告中,有一個與命名空間沖突無關的指導——它要求在普通方法能夠實現的情況下,不要濫用擴展方法。當兩個庫都公開了相同類型的擴展方法時,會發生方法名稱的沖突。一旦發生,只能導入一個庫,另一個庫則必須使用完整的名稱才能被引用。

在擴展LINQ一節中,對于如何命名泛型類型有一個頗有助益的建議。在類型名為S以指代包含元素項的集合時,名為T的泛型類型總是指代集合的元素項(items)。雖然這不是強制性的,但至少有助于閱讀內建方法(built-in methods)。

對于性能,指南提出的一個建議是,如果性能牽涉到計算集合的元素總數,則實現ICollection有助于提高性能。當你只能實現IEnumerable時,就必須遍歷整個集合才能得到集合的元素總數。

現在,再回頭看看Keith Farmer提到的避免子類的方法:

我過去一直在考慮的一件事情是削減類的職責,使其只具備基本的定義:恰如其分的屬性定義,與屬性對應的方法,以及構造器和類型轉換器。

然后使用擴展方法定義適當的操作,而不需要維護類作為自身實體的概念,這樣就沒有必要創建子類型了(即使子類型是可行的)。

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

在這種情況下,類似于Traverse(GraphLink)這樣的方法就屬于Graph中很好的方法定義,而類似于 FindLeastWorkRoute(Node, Node)這樣的方法,由于它依賴于GraphLink的特定子類型的實現細節(即它具有一個關聯的Work衡量標準),那么在我看來,這樣的方法***定義為一個擴展方法。

如果僅僅是為了實現應用程序特定的邏輯,而去創建一個自定義子類型,就會擾亂我們關注的類(例如,Graph就勝過同時定義Graph和GraphLink),而通過擴展方法就可以避免這樣的情況。以上介紹LINQ構建框架設計指南。

【編輯推薦】

  1. LinqDataSource控件剖析
  2. Linq To Sql學習經驗
  3. Linq String類型淺析
  4. Linq組合查詢之集成數據庫語言查詢
  5. Linq To SQL輸出SQL語句剖析
責任編輯:佚名 來源: 51cto.com
相關推薦

2009-09-08 17:57:54

LINQ to Dat

2009-09-15 16:52:19

Linq To Dat

2012-06-25 12:43:26

.NET框架

2009-09-16 13:02:12

LINQ查詢子句

2022-12-16 12:16:21

2012-06-25 09:28:42

.NET可逆框架

2009-09-17 16:20:43

Linq to sql

2016-03-23 11:05:58

Socket開發框架分析

2020-07-30 10:35:32

Java反射框架設計

2012-01-18 10:20:42

框架設計

2010-09-25 13:09:39

UISymbian

2012-01-10 10:04:43

Node.js

2022-09-15 18:32:13

SPI模型框架

2021-02-23 08:18:04

Java 反射機制

2011-04-22 09:26:57

MVC設計

2022-06-15 11:01:59

自定義SPIJava

2022-10-10 09:11:12

互聯網存儲系統云計算

2009-09-14 16:46:15

LINQ to XML

2009-09-17 13:54:26

LINQ to XML

2010-05-18 17:50:57

Subversion服
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品美女www爽爽爽视频 | 91欧美精品成人综合在线观看 | 91大神在线资源观看无广告 | 中文字幕免费在线 | 男人天堂久久 | 欧美精品一区二区三区在线播放 | 亚洲精品高清视频 | 亚洲成人福利视频 | 亚洲精久久久 | 国产精品久久久久久久久久久久 | 欧美黄色大片在线观看 | 亚洲欧美一区二区在线观看 | 美女黄网 | 亚洲精品久久久一区二区三区 | 黄色大片免费网站 | 91一区二区三区 | 亚洲精品视频在线 | 欧美成年黄网站色视频 | 亚洲国产精品99久久久久久久久 | 午夜视频一区二区三区 | 亚洲一区二区精品视频 | 国产精品99久 | 国内在线视频 | 成人一区二区视频 | 国产资源在线视频 | 小h片免费观看久久久久 | 亚洲欧美在线观看视频 | 91在线免费视频 | 高清一区二区三区 | 在线免费观看黄色 | 亚洲一区精品在线 | 四虎影音 | 日本免费在线 | 一级黄色绿像片 | 精品国产欧美一区二区 | 天天天天操 | 日韩伦理一区二区 | 中文字幕一区二区三区精彩视频 | 成av在线 | 91.xxx.高清在线 | 成人欧美一区二区三区黑人孕妇 |