static void Main()
        {
            // Enable Unicode
            Console.OutputEncoding = Encoding.Unicode;

            //// випадкові числа
            //Random rnd = new Random();

            // задаємо певну кількість делегатів
            int countDel = rnd.Next(1, 10);

            // створюємо масив делегатів
            DelRandom[] delRandoms = new DelRandom[countDel];

            // заповнення масива делегатами із зв'язуванням
            // з певним методом який видає випадкове число
            for (int i = 0; i < delRandoms.Length; i++)
            {
                delRandoms[i] = Method;
            }

            // анонімний метод, який приймає масив делегатів
            // і розраховує їх середнє арифметичне
            DelAvarage delAvarage = delegate(DelRandom[] delegates)
            {
                Console.WriteLine("\nЗгенеровані значення:\n");
                int sum = 0;
                for (int i = 0; i < delegates.Length; i++)
                {
                    int temp = delegates[i]();
                    sum += temp;
                    Console.WriteLine($"\t{temp:N0}");
                }

                return((double)sum / delegates.Length);
            };

            // передача масиву делегатів, для розрахунку середнього арифметичного
            double res = delAvarage(delRandoms);

            Console.WriteLine("\nСереднє арифметичне:");
            Console.Write($"\n\t{res:N2}");

            // повторення
            DoExitOrRepeat();
        }
Пример #2
0
        static void Main(string[] args)
        {
            Random random = new Random();

            DelRandom[] delegateRandoms = new DelRandom[3];
            for (int i = 0; i < delegateRandoms.Length; i++)
            {
                delegateRandoms[i] = () =>
                {
                    int result = random.Next(20);
                    Console.WriteLine(result);
                    return(result);
                };
            }

            DelAverage delAverage = (delRandoms) => (double)delRandoms.Sum(i => i.Invoke()) / (double)delRandoms.Length;

            Console.WriteLine("\n{0:##.##}", delAverage.Invoke(delegateRandoms));
            Console.ReadLine();
        }