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() { // Enable Unicode Console.OutputEncoding = Encoding.Unicode; // випадкові числа Random rnd = new Random(); // анонімний метод, який приймає масив делегатів // і розраховує їх середнє арифметичне DelAvarage delAvarage = delegate(List <DelRandom> delegates) { int sum = 0; foreach (var i in delegates) { sum += i(); } return((double)sum / delegates.Count); }; // внутрішній делегат, який повертає випадкове значення int // такий варіант не підходить, томущо скільки раз визивається, // стільки раз і будуть перегенеровуватись значення //DelRandom delRandom = () => rnd.Next(sbyte.MinValue, sbyte.MaxValue); // задаємо певну кількість делегатів int countDel = rnd.Next(1, 10); // створюємо для стабільності масив значень List <int> array = new List <int>(); // заповнюємо масив for (int i = 0; i < countDel; i++) { array.Add(rnd.Next(sbyte.MinValue, sbyte.MaxValue)); } // створюєм масив внутрішніх делегатів List <DelRandom> delRandoms = new List <DelRandom>(); // заповнення масиву делегатів foreach (var i in array) { delRandoms.Add(() => i); } // передача масиву делегатів, для розрахунку середнього арифметичного double res = delAvarage(delRandoms); // виведення результату Console.WriteLine("\nЗгенеровані значення:\n"); foreach (var i in array) { Console.WriteLine($"\t{i:N0}"); } Console.WriteLine("\nСереднє арифметичне:"); Console.Write($"\n\t{res:N2}"); // повторення DoExitOrRepeat(); }