ASP.NET MVC學(xué)前篇之?dāng)U展方法、鏈?zhǔn)骄幊?/p>創(chuàng)新互聯(lián)公司是一家專業(yè)提供黃梅企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為黃梅眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
目的沒有別的,就是介紹幾點(diǎn)在ASP.NETMVC 用到C#語言特性,還有一些其他瑣碎的知識(shí)點(diǎn),強(qiáng)行的劃分一個(gè)范圍的話,只能說都跟MVC有關(guān),有的是外圍的知識(shí),有的是包含在框架內(nèi)的。 MVC學(xué)前篇字樣?有噱頭的成分也有真實(shí)的成分,所以工欲善其事,必先利其器。器是什么?基礎(chǔ)嘛,雖然說MVC框架中涉及到的知識(shí)很多很多也不是我一篇兩篇能說完的,我能做的就是知道多少就跟大家分享多少,當(dāng)然了隨著時(shí)間的推移會(huì)完善這個(gè)系列。
擴(kuò)展方法是C# 3.0特性里的知識(shí),它用在最多的地方是在Linq中,把眾多的查詢功能添加到了IEnumerable和IEnumerable<T>類型中, 這里不說太多,不然就扯Linq了。
運(yùn)用的實(shí)際場景:有個(gè)購物清單(購物車)對(duì)象,它包含有添加、***清單內(nèi)物品的功能
商品對(duì)象,它包含 商品名稱、商品價(jià)格兩個(gè)屬性
代碼1-1
1 namespace BlogCase 2 public class Commodity 3 { 4 public string Name { get; set; } 5 public float Price { get; set; } 6 } 7 8 namespace BlogCase 9 /// <summary> 10 /// 購物清單 11 /// </summary> 12 public class ShoppingList 13 { 14 private List<Commodity> _Commodities; 15 16 public List<Commodity> Commodities 17 { 18 get { return _Commodities; } 19 } 20 21 public ShoppingList() 22 { 23 _Commodities = new List<Commodity>(); 24 } 25 26 public bool AddCommodity(Commodity commodity) 27 { 28 _Commodities.Add(commodity); 29 return true; 30 } 31 32 public bool RemoveCommodity(Commodity commodity) 33 { 34 if (_Commodities.Contains(commodity)) 35 { 36 _Commodities.Remove(commodity); 37 return true; 38 } 39 else 40 { 41 return false; 42 } 43 } 44 }
然后在這個(gè)令人不安、惶恐、期待、興奮的新需求來了,要求清單可以提供一個(gè)清單內(nèi)部所有貨品價(jià)格的合計(jì)而又不破壞對(duì)象結(jié)構(gòu).
對(duì)的。這是非常合理的需求,現(xiàn)在咒罵也于事無補(bǔ),因?yàn)樾枨罂偸俏粗?。在焦急、無奈中曙光就降臨了,它就是C# 3.0中的特性擴(kuò)展方法。
來看代碼1-2
代碼1-2
1 using BlogCase; 2 using System.Linq; 3 4 namespace BlogCase.Extension 5 { 6 public static class ShoppingListExtension 7 { 8 public static float Total(this ShoppingList shoppintlist) 9 { 10 return shoppintlist.Commodities.Sum(commodity => commodity.Price); 11 } 12 } 13 }
這里要說的是ShoppingListExtension類型是一個(gè)靜態(tài)類,里面定義了一個(gè)靜態(tài)方法Total,方法的簽名是ShoppingList類型的參數(shù),唯一不同的是在ShoppingList類型前面多了個(gè)this關(guān)鍵字,這時(shí)對(duì)ShoppingList類型的擴(kuò)展方法已經(jīng)定義好了。來看下示例代碼1-3的使用吧。
代碼1-3
1 using BlogCase.Extension; 2 3 namespace BlogCase 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 ShoppingList shoppinglistTest = new ShoppingList(); 10 shoppinglistTest.AddCommodity(new Commodity() { Name = "A", Price = 14.3f }); 11 shoppinglistTest.AddCommodity(new Commodity() { Name = "B", Price = 15 }); 12 shoppinglistTest.AddCommodity(new Commodity() { Name = "C", Price = 27.9f }); 13 shoppinglistTest.AddCommodity(new Commodity() { Name = "D", Price = 34.3f }); 14 Console.WriteLine(shoppinglistTest.Total().ToString()); 15 Console.ReadLine(); 16 } 17 } 18 }
這里需要注意的是需要引用擴(kuò)展方法類ShoppingListExtension所在的命名空間,在VS開發(fā)環(huán)境中,擴(kuò)展方法的圖標(biāo)也和普通方法的不一樣。如圖1
圖1
運(yùn)行結(jié)果如圖3
圖3
高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
名稱欄目:ASP.NETMVC學(xué)前篇之?dāng)U展方法、鏈?zhǔn)骄幊?創(chuàng)新互聯(lián)
本文鏈接:http://www.rwnh.cn/article44/ccisee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、小程序開發(fā)、建站公司、全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容