首页 > 代码库 > MVC 中使用扩展方法
MVC 中使用扩展方法
扩展方法(Extension Method)是给那些不是你拥有、因而不能直接修改的类添加方法的一种方便的办法。
1、定义一个购物车的类-ShoppingCart
1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Web; 6 7 namespace Demo.Models 8 { 9 public class ShoppingCart:IEnumerable<Product>10 {11 public List<Product> Products { get; set; }16 }17 }
2、定义一个扩展方法
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 namespace Demo.Models 7 { 8 public static class MyExtensionMethods 9 {10 public static decimal TotalPrices(this ShoppingCart cartParam)11 {12 decimal total = 0;13 foreach (Product prod in cartParam.Products)14 {15 total += prod.Price;16 }17 return total;18 }28 }29 }
this 关键字把TotalPrices定义为一个扩展方法 ShoppingCart 告诉。net 这个扩展方法运用与那个类
3、运用扩展方法
1 public ViewResult UserExtension() 2 { 3 //创建并填充ShoppingCart 4 ShoppingCart cart = new ShoppingCart 5 { 6 Products = new List<Product>{ 7 new Product{Name="kayak",Price=275M},//皮划艇 8 new Product{Name="Lifejacket",Price=48.95M},//休闲夹克 9 new Product{Name="Soccer ball",Price=19.50M},//足球10 new Product{Name="Corner flag",Price=34.95M}//角旗11 }12 };13 //求去购物车中的产品总价14 decimal cartTotal = cart.TotalPrices();15 return View("Result", (object)String.Format("Total:{0:c}", cartTotal));16 }
4、结果展示
MVC 中使用扩展方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。