コード例 #1
0
 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]());
     }
 }
コード例 #2
0
        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();
        }