говорит, что листочки собрал, что не помнит точно, но что то типа такого:using System;namespace Practise{    public class Tree    {        public int leftHits;            public event Action<int> TreeHit;        public event Action TreeFall;            public Tree(int hits)        {            leftHits = hits;        }            public void Hit()        {            if (leftHits > 0)            {                leftHits--;                TreeHit?.Invoke(leftHits);                            if (leftHits == 0)                {                    TreeFall?.Invoke();                }            }        }    }    public class WoodCutter    {        public string nameOfTree;        public void ChopTree(Tree tree, string NameOfTree)        {            nameOfTree = NameOfTree;            Console.WriteLine($"Дерево {nameOfTree}. Необходимое количество ударов: {tree.leftHits}" );                        tree.TreeHit += OnTreeHit;            tree.TreeFall += OnTreeFall;                    while (tree.leftHits > 0)            {                tree.Hit();            }        }            private void OnTreeHit(int leftHits)        {            Console.WriteLine($"Произошел удар по дереву. Дерево: {nameOfTree}. Осталось ударов: {leftHits}" );        }            private void OnTreeFall()        {            Console.WriteLine("Дерево упало." );        }    }    public class Program    {        public static void Main(string[] args)        {            Tree tree1 = new Tree(3);            Tree tree2 = new Tree(5);            Tree tree3 = new Tree(8);                        WoodCutter person = new WoodCutter();                        person.ChopTree(tree1, "tree1" );            person.ChopTree(tree2, "tree2" );            person.ChopTree(tree3, "tree3" );            Console.ReadKey();        }    }}