Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Cryptography.X509Certificates;
- namespace ConsoleApp1
- {
- public delegate void sa(Item item);
- public static class Manager
- {
- public static void Decrease(Item item)
- {
- item.Price /= 2;
- }
- }
- public class Item
- {
- public event sa Decrease;
- public int ID { get; set; }
- public string Name { get; set; }
- public int Price { get; set; }
- public override string ToString()
- {
- return $"id - {ID} name - {Name} price - {Price}";
- }
- public override int GetHashCode()
- {
- return ID;
- }
- }
- public class Shop:IEnumerable
- {
- public static Queue<Item> Items{get;private set; }
- public Shop()
- {
- Items=new Queue<Item>();
- }
- public void Clear()
- {
- Items.Clear();
- }
- public void Add(Item item)
- {
- Items = this + item;
- }
- public void Remove()
- {
- Items= this - Items.Last();
- }
- public IEnumerator GetEnumerator()
- {
- var enumerator = Items.GetEnumerator();
- return enumerator;
- }
- public static Queue<Item> operator +(Shop shop, Item item)
- {
- var newQueue = Items;
- newQueue.Enqueue(item);
- return newQueue;
- }
- public static Queue<Item> operator -(Shop shop, Item item)
- {
- var newQueue=Items;
- newQueue.Dequeue();
- return newQueue;
- }
- }
- public class Program
- {
- static void Main(string[] args)
- {
- var firstItem = new Item() {ID = 1, Name = "item1", Price = 10};
- var secondItem = new Item() { ID = 2, Name = "item2", Price = 5 };
- var thirdItem = new Item() { ID = 3, Name = "item3", Price = 15 };
- var fourthItem = new Item() { ID = 4, Name = "item4", Price = 13 };
- var fifthItem = new Item() { ID = 5, Name = "item5", Price = 26 };
- var shop=new Shop();
- shop.Add(firstItem);
- shop.Add(secondItem);
- shop.Add(thirdItem);
- shop.Add(fourthItem);
- shop.Add(fifthItem);
- foreach (var item in shop)
- {
- Console.WriteLine(item.ToString());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement