摘要:最近在努力的學(xué)習(xí)MVC.并逐步的把Asp.net MVC應(yīng)用到實(shí)際項(xiàng)目中去.先前.找了不少開(kāi)源項(xiàng)目,心里一個(gè)高興啊.一邊摸索一邊借鑒(抄)著別人的代碼,并希望能從中吸收大牛們的思想.在CodePlex找到一個(gè)不錯(cuò)的開(kāi)源項(xiàng)目.借鑒著就著手開(kāi)發(fā)了.一路上風(fēng)平浪靜.抄代碼抄得起勁.不料出現(xiàn)了一個(gè)讓我措手不及的錯(cuò)誤.該代碼實(shí)現(xiàn)如下. 該方法就是獲取配置文件里相關(guān)的AppSetting項(xiàng),并將其轉(zhuǎn)換成In... 閱讀全文
【More Effective C#】Partial Class是怎樣煉成的?
2010-10-28 08:14 by 空逸云, 2901 閱讀, 11 推薦, 收藏,
摘要:什么是部分類(lèi)(Partial Class)? C#中.我們可以利用部分類(lèi),將一個(gè)類(lèi)分散到多個(gè)類(lèi)文件中,這樣我們就可以多個(gè)開(kāi)發(fā)者同時(shí)開(kāi)發(fā)某個(gè)類(lèi)庫(kù),或者是擴(kuò)展其他開(kāi)發(fā)者發(fā)布的類(lèi)庫(kù).甚至是代碼生成器生成的代碼,例如LINQ2SQL,ADO.NET EF等,以獲取更高效的開(kāi)發(fā). Re:Class和Class File的區(qū)別.這里的類(lèi)是我們平時(shí)所說(shuō)的普通類(lèi)-Class,如抽象類(lèi),基類(lèi),子類(lèi)等等.而類(lèi)文件-... 閱讀全文
【More Effective C#】掩藏在Nullable<T>后的秘密
2010-10-27 08:19 by 空逸云, 2135 閱讀, 7 推薦, 收藏,
摘要:對(duì)于可空類(lèi)型,我們并不陌生.例如,當(dāng)我們?yōu)槲覀兊臄?shù)據(jù)庫(kù)生成一個(gè)實(shí)體時(shí),例如LINQ2SQL,查看實(shí)體類(lèi)中的字段,經(jīng)常會(huì)發(fā)現(xiàn).我們那些定義為可空的字段的類(lèi)型后面都會(huì)多了個(gè)?,如int?string?char?,bool?等等.這就是今天的主角---可空類(lèi)型. Nullable<T> 事實(shí)上,所有的可空類(lèi)型都繼承自Nullable<T>類(lèi),而編譯器為了方便大眾,提供了幾個(gè)常用... 閱讀全文
【More Effective C#】IEnumerable和IQueryable的那點(diǎn)事
2010-10-22 08:08 by 空逸云, 2936 閱讀, 5 推薦, 收藏,
摘要:IEnumerable,IQueryable之前世今生 IEnumerable<T>在.Net2.0中我們已經(jīng)很熟悉了.你想要利用Foreach迭代嗎?實(shí)現(xiàn)IEnumerable<T>吧!你想直接做為數(shù)據(jù)源綁定到控件嗎?使用IEnumera... 閱讀全文
【More Effective C#】區(qū)分早期執(zhí)行和晚期執(zhí)行
2010-10-20 08:19 by 空逸云, 2180 閱讀, 4 推薦, 收藏,
摘要: Lambda的出現(xiàn).使我們除了可以使用"古老"的命令式代碼(imperative code),還可以使用聲明式代碼(declarative code),可以讓我們作出更為靈活的實(shí)現(xiàn)與工程實(shí)踐. 命令式代碼 顧名思義,命令式代碼如同... 閱讀全文
【More Effective C#】Lambda表達(dá)式優(yōu)化
2010-10-19 08:09 by 空逸云, 4746 閱讀, 4 推薦, 收藏,
摘要:使用Lambda表達(dá)式將會(huì)造成Lambda表達(dá)式主題部分的代碼重復(fù). 若每當(dāng)我們要獲取一次不同工薪階層的數(shù)據(jù).就要重復(fù)一次.相信久經(jīng)"高重用,松耦合"定律的你.肯定會(huì)想盡辦法將其實(shí)現(xiàn)高重用,松耦合.在以前方法調(diào)用的時(shí)代.可能你會(huì)將其提煉出這樣,每次我們調(diào)用的時(shí)候,將大大減少代碼量,提高可復(fù)用性.然而,很不幸的是.在這里.這種重構(gòu)的方式反倒降低了其可重用性.實(shí)際上,第一種方法的可... 閱讀全文
【More Effective C#】LINQ表達(dá)式與方法調(diào)用的映射
2010-10-15 08:05 by 空逸云, 982 閱讀, 0 推薦, 收藏,
摘要:LINQ構(gòu)建在兩個(gè)概念之上,一種查詢(xún)語(yǔ)言和一系列將查詢(xún)語(yǔ)言轉(zhuǎn)換成方法調(diào)用的實(shí)現(xiàn).在編譯時(shí),編譯器將LINQ表達(dá)式(LINQtoobject)轉(zhuǎn)換成方法調(diào)用..Net基礎(chǔ)類(lèi)庫(kù)提供了兩種擴(kuò)展方法.System.Linq.Enumerable使用了IEnumerable<T>上擴(kuò)展來(lái)實(shí)現(xiàn),而System.Linq.Queryable則提供了類(lèi)似的一系列IQueryable<T>上... 閱讀全文
【More Effective C#】延遲求值
2010-10-14 18:30 by 空逸云, 949 閱讀, 1 推薦, 收藏,
摘要:LinQ查詢(xún)時(shí),我們不會(huì)立即得到返回的數(shù)據(jù)并生成一個(gè)序列.定義該查詢(xún)只是為了得到查詢(xún)結(jié)果所要的執(zhí)行的步驟,只有開(kāi)始迭代查詢(xún)時(shí),查詢(xún)才會(huì)真正的執(zhí)行.這樣,每次執(zhí)行查詢(xún),都會(huì)從頭開(kāi)始執(zhí)行查詢(xún)的每個(gè)步驟,每次遍歷/迭代都會(huì)得到全新的結(jié)果.這就叫延遲求值.相反.很多時(shí)候我們要所見(jiàn)即所得.定義什么查詢(xún)都得到唯一的數(shù)據(jù)列表.這叫主動(dòng)求值.理解延遲查詢(xún).舉個(gè)不太恰當(dāng)?shù)睦?如C#的Const.我們定義了一個(gè)常量... 閱讀全文
【More Effective C#】?jī)H聲明非虛的事件
2010-10-13 08:17 by 空逸云, 440 閱讀, 0 推薦, 收藏,
摘要:C#除了可以聲明虛方法,屬性外,也可以聲明虛事件.但是并不建議使用虛事件.因?yàn)檫@常會(huì)帶來(lái)不可預(yù)測(cè)的Bug.我們定義了一個(gè)WorkerEngine類(lèi).它有一個(gè)虛事件. [代碼]C#3.0中.編譯器將會(huì)自動(dòng)創(chuàng)建私有字段,以及公共add和remove方法.[代碼] 由于該私有字段是編譯器生成的.所以你無(wú)法通過(guò)代碼訪問(wèn).而且,派生事件將隱藏基類(lèi)中的事件,派生類(lèi)所作的工作與原始版本完全一致.即基類(lèi)有一個(gè)自己... 閱讀全文
【More Effective C#】擴(kuò)展方法
2010-10-12 08:17 by 空逸云, 617 閱讀, 0 推薦, 收藏,
摘要:C#3.0中增加了許多新特性.其中.擴(kuò)展方法允許我們?cè)诓恍薷脑写a的基礎(chǔ)上擴(kuò)展類(lèi)/接口的功能.有技巧的運(yùn)用該特性.能寫(xiě)出有效率/易維護(hù)/美觀的代碼.增強(qiáng)現(xiàn)有接口 C#2.0提供了許多泛型與容器的接口和類(lèi).最常見(jiàn)的如IComparable<T>常常需要新建一個(gè)Comparable來(lái)進(jìn)行排序比較等等..但其默認(rèn)只有一個(gè)CompareTo方法.在以前.我們只能手動(dòng)添加.并且很難復(fù)用代碼.... 閱讀全文
浙公網(wǎng)安備 33010602011771號(hào)