static void Main(string[] args) { Random randVal = new Random(); ArrDelegate[] delegates = new ArrDelegate[5]; for (int i = 0; i < delegates.Length; i++) { delegates[i] = () => randVal.Next(10); } Delegate arrDel = myDelegates => { double sum = 0; for (int i = 0; i < 5; i++) { sum += delegates[i](); } Console.WriteLine("sum is -> {0}",sum); return sum/5; }; Console.WriteLine("Среднее арифметическое : {0}", arrDel(delegates)); Console.WriteLine("Значения переменных в делегатах: "); for (int i = 0; i < delegates.Length; i++) { Console.WriteLine("{0}", delegates[i]()); } }
static void Main(string[] args) { // Массив делигатов MyDelegate[] myDelegates = new MyDelegate[NumberOfDelegates]; myDelegates = FillArrayOfDelegates(myDelegates); // Анонимный метод, который принимает в качестве аргумента массив // делегатов и возвращает среднее арифметическое возвращаемых // значений методов сообщенных с делегатами в массиве. arrDelegate = delegate(MyDelegate[] delegates) { Random rand = new Random(); int summOfReturnedValues = 0; Console.WriteLine("Элементы массива: "); for (int i = 0; i < delegates.Length; i++) { int val = rand.Next(1, 10); summOfReturnedValues += delegates[i].Invoke(val); } return(summOfReturnedValues / (double)delegates.Length); }; double res = arrDelegate.Invoke(myDelegates); Console.WriteLine($"\nСреднее арифметическое: {res}"); Console.ReadKey(); }