static void Main(string[] args) { List <Product> productsBuy = new List <Product>() { new Product("Computer", 122.4M), new Product("Notebook", 17.3M), new Product("Phone", 22.4M), }; List <Product> productsSale = new List <Product>() { new Product("Analitycs", 200.5M), new Product("Consulting", 300M), }; BuyDocument bd = new BuyDocument(productsBuy); SaleDocument sd = new SaleDocument(productsSale); ISummable[] listDoc = new ISummable[2]; listDoc[0] = bd; listDoc[1] = sd; foreach (var item in listDoc) { item.Average(); } Console.ReadKey(); }
// расширяющий метод для интерфейса ISummable вычиляет среднюю цену позиции в документе public static void Average(this ISummable doc) { int count = 0; decimal total = 0; foreach (Product p in doc) { count++; total += p.Price; } Console.WriteLine($"Сдредняя цена продукта в документе {(decimal)total/count:0.000}"); }
public static void SumSummable(ISummable input) { var sum = SumForable(input); input.Sum = sum; }