前言
目的没有别的,就是介绍几点在ASP。NETMVC用到c#语言特性,还有一些其他琐碎的知识点,强行的划分一个范围的话,只能说都跟MVC有关,有的是外围的知识,有的是包含在框架内的。MVC学前篇字样?有噱头的成分也有真实的成分,所以工欲善其事,必先利其器,器是什么?基础嘛,虽然说MVC框架中涉及到的知识很多很多也不是我一篇两篇能说完的,我能做的就是知道多少就跟大家分享多少,当然了随着时间的推移会完善这个系列。
,
1扩展方法
扩展方法是c# 3.0特性里的知识,它用在最多的地方是在Linq中,把众多的查询功能添加到了IEnumerable和IEnumerable
运用的实际场景:有个购物清单(购物车)对象,它包含有添加,* * *清单内物品的功能
,,,,,,,,,,,,,,,,,,,,,,商品对象,它包含商品名称,商品价格两个属性
代码1 - 1
,1,namespace BlogCase ,2,,,,public class 商品 ,3,,,,{ ,4,,,,,,,,public string Name {组,得到,,,} ,5,,,,,,,,public float Price {组,得到,,,} ,6,,,,} ,7,,,, ,8,,,namespace BlogCase ,9日,,,,///,& lt; summary> 10个,,,,,///,购物清单 11,,,,,///,& lt;/summary> 12,,,,,public class ShoppingList 13,,,,,{ 14日,,,,,,,,,private List, _Commodities; 15, 16,,,,,,,,,public List 大宗商品 17日,,,,,,,,,{ 18岁,,,,,,,,,,,,,get {_Commodities;, return } 19日,,,,,,,,,} 20, 21日,,,,,,,,,public ShoppingList () 22日,,,,,,,,,{ 23日,,,,,,,,,,,,,_Commodities =, new List (); 24,,,,,,,,,} 25, 26日,,,,,,,,,public bool AddCommodity (Commodity 商品) 27,,,,,,,,,{ 28日,,,,,,,,,,,,,_Commodities.Add(商品); 29日,,,,,,,,,,,,,return 真实; 30,,,,,,,,,} 31日, 32岁,,,,,,,,,public bool RemoveCommodity (Commodity 商品) 33岁,,,,,,,,,{ 34岁,,,,,,,,,,,,,if (_Commodities.Contains(商品)) 35岁,,,,,,,,,,,,,{ 36,,,,,,,,,,,,,,,,,_Commodities.Remove(商品); 37岁,,,,,,,,,,,,,,,,,return 真实; 38岁,,,,,,,,,,,,,} 39岁,,,,,,,,,,,,, 40岁,,,,,,,,,,,,,{ 41岁,,,,,,,,,,,,,,,,,return 假; 42岁,,,,,,,,,,,,,} 43岁,,,,,,,,,} 44岁,,,,,,}
然后在这个令人不安,惶恐,期待,兴奋的新需求来了,要求清单可以提供一个清单内部所有货品价格的合计而又不破坏对象结构。
对的。这是非常合理的需求,现在咒骂也于事无补,因为需求总是未知的。在焦急,无奈中曙光就降临了,它就是c# 3.0中的特性扩展方法。
来看代码1 - 2
代码1 - 2
,1,using BlogCase; ,2 using 来; ,3 ,4 namespace BlogCase.Extension ,5,{ ,6,,,,public static class ShoppingListExtension ,7,,,,{ ,8个,,,,,,,,public static float 总(却;能够ShoppingList shoppintlist) ,9日,,,,,,,,{ 10个,,,,,,,,,,,,,return shoppintlist.Commodities.Sum (commodity =祝辞,commodity.Price); 11,,,,,,,,,} 12,,,,,} null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullASP。NET MVC学前篇之扩展方法,链式编程