• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomysł na jakiś prosty program z wykorzystaniem delegatu.

Object Storage Arubacloud
0 głosów
192 wizyt
pytanie zadane 28 grudnia 2019 w C# przez KonDZIKs Bywalec (2,770 p.)
Witam.
Może pytanie jest głupie i większość mnie wyśmieje i będzie kazała poszukać w google (szukałem). Ale czy mógłby mi ktoś pomóc wymyślić jakiś nie za trudny przykład z użyciem delegatu. Wiem o co chodzi ,ale nie mam żadnego pomysłu jak ja go mogę wykorzystać nic mi nie przychodzi do głowy.

Za wszelkie pomysły będę mega wdzięczny.

Szczęśliwego Nowego Roku !!!

1 odpowiedź

0 głosów
odpowiedź 30 grudnia 2019 przez Siemił Mądrala (7,380 p.)

Trudno taki przykład, który by nie był sztuczny wymyślić. Osobiście tworze delegaty tylko gdy potrzebuje zdarzeniem przesłać jakąś specyficzną wartość (EventHandler nie zawsze jest użyteczny). 

Gdy potrzebuje przekazać jakąś czynność do funkcji to wykorzystuję generyczne delegaty Action Func czy Predict.

Jak bym już miał na siłę coś zaproponować to może jakiś kalkulator (standardowo, nudny i beze sensu):

using System;

namespace ConsoleApp9
{
    public delegate void Print(int first, int secound);

    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            p.Do();

            Console.ReadKey();
        }

        public void Add(int first, int second) =>
            Console.WriteLine($"{first} + {second} = {first + second}");

        public void Subtract(int first, int second) =>
            Console.WriteLine($"{first} - {second} = {first - second}");

        public void Multiply(int first, int second) =>
            Console.WriteLine($"{first} * {second} = {first * second}");

        public void Divide(int first, int second) =>
            Console.WriteLine($"{first} / {second} = {(double)first / (double)second}");

        public void SetAction(int first, int second, Print handler) =>
            handler(first, second);

        public void Do()
        {
            //Pierwszy sposób wykorzystania delegata.
            Print print = Add;
            print += Subtract;
            print += Multiply;
            print += Divide;
            print.Invoke(8, 6);

            //Drugi sposób wykorzystania delegata.
            SetAction(4, 2, AddUp);
            SetAction(4, 2, Subtract);
            SetAction(4, 2, Multiply);
            SetAction(4, 2, Divide);
        }
    }
}

 

Podobne pytania

0 głosów
1 odpowiedź 86 wizyt
pytanie zadane 18 maja 2020 w C# przez Stami Gaduła (3,790 p.)
0 głosów
0 odpowiedzi 246 wizyt
pytanie zadane 23 sierpnia 2022 w C# przez Enzo1902 Użytkownik (510 p.)
0 głosów
1 odpowiedź 141 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...