MVC 中使用扩展方法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > MVC 中使用扩展方法

MVC 中使用扩展方法

 2015/1/16 13:16:36  D、boy  程序员俱乐部  我要评论(0)
  • 摘要:扩展方法(ExtensionMethod)是给那些不是你拥有、因而不能直接修改的类添加方法的一种方便的办法。1、定义一个购物车的类-ShoppingCart1usingSystem;2usingSystem.Collections;3usingSystem.Collections.Generic;4usingSystem.Linq;5usingSystem.Web;67namespaceDemo.Models8{9publicclassShoppingCart:IEnumerable<
  • 标签: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、结果展示

 

发表评论
用户名: 匿名