示例#1
0
        static void Main(string[] args)
        {
            //Named Delegate
            SayHello obj = HelloFunction;

            obj.Invoke("Gagan");
            //Anonymous Delegate
            Add f1 = delegate(int a, int b)
            {
                return(a + b);
            };

            f1.Invoke(4, 3);
            //Composable Delegate
            obj += HiFunction;    //When Line 26 is commented then first Hello Gagan is printed then Hi Gagan is printed
            obj.Invoke("Gagan");
            //Func Delegate -
            Func <int, int> Square = (input) => { return(input * input); };

            Console.WriteLine(string.Format("This is output of Func Delegate:" + Square(4)));
            //Action Delegate - No return Type
            Action <double, double> Power = (input1, input2) => { Console.WriteLine("Action Delegate:" + Math.Pow(input1, input2)); };

            Power(2, 3);
            //Predicate Delegate - Bool return type
            Predicate <int> IsGreateThenZero = (input) => { return(input > 0 ? true : false); };

            Console.WriteLine(IsGreateThenZero(5));
            //Comparison Delegate
        }
示例#2
0
 private void OnCameEventHandler(Person person, DateTime time)
 {
     Console.WriteLine($"\n[На работу пришел {person.Name}]");
     greetAll?.Invoke(person, time);
     greetAll += person.Hello;
     byeAll   += person.Goodbye;
 }
示例#3
0
 private void Came(Person men, DateTime time)
 {
     Console.WriteLine($"[ На работу пришел {men.Name}]");
     hello?.Invoke(men.Name, time);
     hello += men.SayHello;
     bye   += men.SayBye;
 }
示例#4
0
 private void OnCameHandler(Person p, DateTime time)
 {
     Console.WriteLine($"[{p.Name} пришёл на работу]");
     greetAll?.Invoke(p, time);
     greetAll += p.Greeting;
     byeAll   += p.Farewell;
 }
示例#5
0
 private void OnCameHandler(Person p, DateTime time)
 {
     Console.WriteLine($"{p.Name} пришел");
     // вызываем все методы приветствия, какие есть
     greetAll?.Invoke(p, time);
     greetAll += p.Greet;
     byeAll   += p.SayBye;
 }
示例#6
0
        private void OnCameHandler(Person p, DateTime time)
        {
            Console.WriteLine($"Person {p.Name} came to work");
            greetAll?.Invoke(p.Name, DateTime.Now);

            greetAll   += p.SayHello;
            goodbyeAll += p.SayGoodBye;
        }
示例#7
0
        private void OnCameHandler(Person p, TimeSpan time)
        {
            Console.WriteLine($"[{p.name} приходит на работу]");

            greetAll?.Invoke(p.name, time);

            greetAll += p.Greet;
            byeAll   += p.Parting;
        }
示例#8
0
        private void OnCameHandler(Person p, DateTime time)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine($"--Сотрудник {p.Name} пришёл");
            helloList?.Invoke(p, time);

            helloList += p.SayHello;
            byeList   += p.SayBye;
        }
示例#9
0
        private void OnCameHandler(Person p, DateTime time)
        {
            Console.WriteLine($"[На работу пришел {p.Name}]");

            greetAll?.Invoke(p.Name, time);

            greetAll += p.SayHello;
            byeAll   += p.SayGoodBye;
        }
示例#10
0
        public void AllSayHello2(string name)
        {
            sayHelloDelegate?.Invoke(name);

            // 上述是正规写法
            //if (sayHelloDelegate != null)
            //{
            //    sayHelloDelegate(name);
            //}
        }
示例#11
0
        private void OnCameHandler(Person p, DateTime time)
        {
            Console.WriteLine($"[Person {p.Name} came to work]");
            // вызываем все методы приветствия, какие есть
            // (если в офисе есть люди, то значит они уже положили свои методы в этот делегат. а значит они поприветствуют нового человека)
            greetAll?.Invoke(p.Name, time);

            // кладём в multicast делегаты ссылки на методы преветствия и прощаний пришёдшего работника
            greetAll += p.SayHello;
            byeAll   += p.SayGoodBye;
        }
示例#12
0
        static void Main(string[] args)
        {
            GreetingDelegate obj = (name) => //Using arrow function then remove keyword delegate, datatype for parameter also removed
            {
                return("Hello " + name + ", Good Morning");
            };
            var str = obj.Invoke("nmfairus");

            Console.WriteLine(str);

            SayHello obj2 = () => { Console.WriteLine("Hello Lambda Expression"); };

            obj2.Invoke();

            Console.WriteLine("Hello World!");
        }