Делегаты C#
                        
                    Делегат представляет собой объект, который может ссылаться на метод или несколько методов. Следовательно, когда создается делегат, то в итоге получается объект, содержащий ссылку на метод. Иными словами, делегат позволяет вызывать метод, на который он ссылается.
По сути, делегат — это безопасный в отношении типов объект, указывающий на другой метод (или, возможно, список методов) приложения, который может быть вызван позднее. В частности, объект делегата поддерживает три важных фрагмента информации:
- адрес метода, на котором он вызывается;
 - аргументы (если есть) этого метода;
 - возвращаемое значение (если есть) этого метода.
 
Пример использования делегата:
   class TrainStation
    {
        delegate int Train();
        int Wagon1()
        {
            Console.WriteLine("wagon1 is running");
            return 1;
        }
        int Wagon2()
        {
            Console.WriteLine("wagon2 is running");
            return 2;
        }
        public void CreateTrain()
        {
            Train train = Wagon1; 
            train += Wagon2;
            train  += () => // пример с использованием лямбда выражения
            {
                Console.WriteLine("wagon3 is running");
                return 3; 
            };
            Console.WriteLine("WagonNumber:" + train());
        }
    }
    internal class Program
    {
       
        private static void Main()
        {
            var trainStation = new TrainStation();
            trainStation.CreateTrain();
            Console.ReadKey();
        }
    }
На экран выведется следующее:
wagon1 is running
wagon2 is running
wagon3 is running
WagonNumber:3
Объяснение:
Делегат это по сути очередь в которую можно добавить сколько угодно методов. При выполнении train += Wagon2; мы добавляем 2й вагон в очередь.
Причина почему на экран вывелась цифра "3" после выполнения всех методов в том что если функция имеет возвращаемое значение, то возвращается значение с последней добавленной "в очередь" функции.