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(); }
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(); }