Untitled

mail@pastecode.io avatar
unknown
csharp
2 years ago
1.3 kB
2
Indexable
Never
// See https://aka.ms/new-console-template for more information

namespace Generics0
{
    class Program
    {
        static void Main(string[] args)
        {
            ManagesAnything<Item> manageItems = new ManagesAnything<Item>();

            Lumber lumber = new Lumber();
            Gold gold = new Gold();

            for (int i = 0; i < 3; i++)
            {
                manageItems.AddAmount(100, lumber);
                manageItems.AddAmount(100, gold);

                Console.WriteLine("LUMBER:: " + lumber.Current);
                Console.WriteLine("GOLD:: " + gold.Current);

            }
        }
    }

    class ManagesLumber
    {
        public void AddAmount(int addition, Item item)
        {
            item.Current += addition;
        }
    }
    class ManagesAnything<T>
    {
        public void AddAmount(int addition, Item item)
        {
            item.Current += addition;
        }
    }

    class Item
    {
        public int Current { get; set; }
        public int Limit { get; set; }
    }
    class Lumber : Item
    {
        public Lumber()
        {
            Current = 100;
        }
    }
    class Gold : Item
    {
        public Gold()
        {
            Current = 1000;
        }
    }
}