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 }
private void OnCameEventHandler(Person person, DateTime time) { Console.WriteLine($"\n[На работу пришел {person.Name}]"); greetAll?.Invoke(person, time); greetAll += person.Hello; byeAll += person.Goodbye; }
private void Came(Person men, DateTime time) { Console.WriteLine($"[ На работу пришел {men.Name}]"); hello?.Invoke(men.Name, time); hello += men.SayHello; bye += men.SayBye; }
private void OnCameHandler(Person p, DateTime time) { Console.WriteLine($"[{p.Name} пришёл на работу]"); greetAll?.Invoke(p, time); greetAll += p.Greeting; byeAll += p.Farewell; }
private void OnCameHandler(Person p, DateTime time) { Console.WriteLine($"{p.Name} пришел"); // вызываем все методы приветствия, какие есть greetAll?.Invoke(p, time); greetAll += p.Greet; byeAll += p.SayBye; }
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; }
private void OnCameHandler(Person p, TimeSpan time) { Console.WriteLine($"[{p.name} приходит на работу]"); greetAll?.Invoke(p.name, time); greetAll += p.Greet; byeAll += p.Parting; }
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; }
private void OnCameHandler(Person p, DateTime time) { Console.WriteLine($"[На работу пришел {p.Name}]"); greetAll?.Invoke(p.Name, time); greetAll += p.SayHello; byeAll += p.SayGoodBye; }
public void AllSayHello2(string name) { sayHelloDelegate?.Invoke(name); // 上述是正规写法 //if (sayHelloDelegate != null) //{ // sayHelloDelegate(name); //} }
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; }
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!"); }