C#Extension Methods 扩展方法使用
来源:互联网 发布:人工智能 呼叫中心 编辑:程序博客网 时间:2024/06/05 06:10
对已知类的方法进行扩展
一、已知类
public class ShoppingCart : IEnumerable<Product> { public List<Product> Products { get; set; } public IEnumerator<Product> GetEnumerator() { return Products.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }}二、方法扩展
public static class MyExtensionMethods { public static decimal TotalPrices(this IEnumerable<Product> productEnum) { decimal total = 0; foreach (Product prod in productEnum) { total += prod.Price; } return total; } public static IEnumerable<Product> FilterByCategory( this IEnumerable<Product> productEnum, string categoryParam) { foreach (Product prod in productEnum) { if (prod.Category == categoryParam) { yield return prod; } } }}三、实际使用
IEnumerable<Product> products = new ShoppingCart { Products = new List<Product> { new Product {Name = "Kayak", Category = "Watersports", Price = 275M}, new Product {Name = "Lifejacket", Category = "Watersports", Price = 48.95M}, new Product {Name = "Soccer ball", Category = "Soccer", Price = 19.50M}, new Product {Name = "Corner flag", Category = "Soccer", Price = 34.95M} } }; decimal total = products.FilterByCategory("Soccer").TotalPrices();
0 0
- C#Extension Methods 扩展方法使用
- Extension Methods(扩展方法)
- 什么是扩展方法 (Extension Methods)?
- C#3.0 中的扩展方法 (Extension Methods)
- C#3.0 中的扩展方法 (Extension Methods)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- 3. Extension Methods(扩展方法)
- C#3.0 中的扩展方法 (Extension Methods)
- 3. Extension Methods(扩展方法)
- 第十二周项目二(3):刑警的射击成绩
- Comparable和Comparator区别
- unity mono 编译
- Objective-C的数组的初始化完成后再使用
- 20. Java新IO --- 学习笔记
- C#Extension Methods 扩展方法使用
- oracle的安装历程...
- 使用spring注入时出现is not writable or has an invalid setter method
- 第12周项目2.3 输出刑警的射击成绩
- mybaits3 知识点总结
- 较好的技术博客
- iOS开发笔记--Layer 图层圆角、边框 、底纹其他常用操作
- Centos7.0安装图文详解
- 获取后几位数