Пример #1
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();
        }
Пример #2
0
        static void Main()
        {
            // Enable Unicode
            Console.OutputEncoding = Encoding.Unicode;

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

            // випадкові цілі числа (великі числа погіршують читабельність)
            #region Створення цілих чисел
            int[] abc = new int[]
            {
                rnd.Next(sbyte.MinValue, sbyte.MaxValue),
                rnd.Next(sbyte.MinValue, sbyte.MaxValue),
                rnd.Next(sbyte.MinValue, sbyte.MaxValue)
            };

            // виведення на екран
            Console.WriteLine("\nЗгенеровані випадкові цілі числа:\n");
            Console.WriteLine($"\tA = {abc[0]:N0}");
            Console.WriteLine($"\tB = {abc[1]:N0}");
            Console.WriteLine($"\tC = {abc[2]:N0}");
            #endregion

            #region 1. Спосіб. Через статичний метод і делегат
#if false
            // створення змінної делегата
            DelAverage delAverage = AverageS;

            // вивід інформації
            Console.WriteLine("\n\tСереднє арифметичне значення цих чисел: " +
                              $"{delAverage(abc[0], abc[1], abc[2]):N2}");
#endif
            #endregion

            #region 2. Спосіб. Через метод і делегат
#if false
            // створення змінної делегата
            DelAverage delAverage = new Program().Average;

            // вивід інформації
            Console.WriteLine("\n\tСереднє арифметичне значення цих чисел: " +
                              $"{delAverage(abc[0], abc[1], abc[2]):N2}");
#endif
            #endregion

            #region 3. Спосіб. Через анонімний метод
#if false
            // створення змінної делегата
            DelAverage delAverage = delegate(int a, int b, int c)
            {
                // економія часу і місця
                return(AverageS(a, b, c));
            };

            // вивід інформації
            Console.WriteLine("\n\tСереднє арифметичне значення цих чисел: " +
                              $"{delAverage(abc[0], abc[1], abc[2]):N2}");
#endif
            #endregion

            #region 4. Спосіб. Через лямда-вираз
#if false
            // створення змінної делегата
            DelAverage delAverage = (a, b, c) => AverageS(a, b, c);

            // вивід інформації
            Console.WriteLine("\n\tСереднє арифметичне значення цих чисел: " +
                              $"{delAverage(abc[0], abc[1], abc[2]):N2}");
#endif
            #endregion

            #region 5. Спосіб. Через лямда-вираз і без використання метода
#if true
            // створення змінної делегата
            DelAverage delAverage = (a, b, c) => (a + b + c) / 3.0;

            // вивід інформації
            Console.WriteLine("\n\tСереднє арифметичне значення цих чисел: " +
                              $"{delAverage(abc[0], abc[1], abc[2]):N2}");
#endif
            #endregion

            // повторення
            DoExitOrRepeat();
        }