2、扩展方法

public class Product
{
    public int ProductID { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public decimal Price { get; set; }
    public string Category { set; get; }
}
using System.Collections.Generic;
public class ShoppingCart
{
    public List<Product> Products { get; set; }
}
public static class MyExtensionMethods
{
    public static decimal TotalPrices(this ShoppingCart cartParam)
    {
        decimal total = 0;
        foreach (Product prod in cartParam.Products)
        {
            total += prod.Price;
        }
        return total;
    }
}
using System;
using System.Collections.Generic;
class Program
{
    static void Main(string[] args)
    {
        // create and populate ShoppingCart
        ShoppingCart cart = new ShoppingCart
        {
            Products = new List<Product> {
            new Product {Name = "Kayak", Price = 275M},
            new Product {Name = "Lifejacket", Price = 48.95M},
            new Product {Name = "Soccer ball", Price = 19.50M},
            new Product {Name = "Corner flag", Price = 34.95M}
            }
        };
        // get the total value of the products in the cart
        decimal cartTotal = cart.TotalPrices();
        Console.WriteLine("Total: {0:c}", cartTotal);
    }
}
这里主要就是一个扩展方法TotalPrices,即给

ShoppingCart这个类添加一个静态方法TotalPrices


接口扩展方法的应用

using System.Collections;
using System.Collections.Generic;
public class ShoppingCart : IEnumerable<Product>
{
    public List<Product> Products { get; set; }
    public IEnumerator<Product> GetEnumerator()
    {
        return Products.GetEnumerator();
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
}
using System.Collections.Generic;
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;
    }
}
using System;
using System.Collections.Generic;
class Program
{
    static void Main(string[] args)
    {
        // create and populate ShoppingCart
        IEnumerable<Product> products = new ShoppingCart
        {
            Products = new List<Product> {
            new Product {Name = "Kayak", Price = 275M},
            new Product {Name = "Lifejacket", Price = 48.95M},
            new Product {Name = "Soccer ball", Price = 19.50M},
            new Product {Name = "Corner flag", Price = 34.95M}}
        };
        // create and populate an array of Product objects
        Product[] productArray = {
            new Product {Name = "Kayak", Price = 275M},
            new Product {Name = "Lifejacket", Price = 48.95M},
            new Product {Name = "Soccer ball", Price = 19.50M},
            new Product {Name = "Corner flag", Price = 34.95M}
        };
        // get the total value of the products in the cart
        decimal cartTotal = products.TotalPrices();
        decimal arrayTotal = products.TotalPrices();
        Console.WriteLine("Cart Total: {0:c}", cartTotal);
        Console.WriteLine("Array Total: {0:c}", arrayTotal);
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值