Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Akademia C# lab. 9 Zdarzenia i delegaty.

Podobne prezentacje


Prezentacja na temat: "Akademia C# lab. 9 Zdarzenia i delegaty."— Zapis prezentacji:

1 Akademia C# lab. 9 Zdarzenia i delegaty

2 Zdarzenia Jak działają? Jeden obiekt udostępnia zdarzenie, inne je obsługuje. Zdarzenie to coś co się wydarza w naszym programie, np. kliknięcie na przycisk. Zdarzenia się obsługuje. Specjalny kod do tego nazywamy procedurą obsługi zdarzeń.

3 Każda z kontrolek, posiada pulę zdefiniowanych zdarzeń, do których za pomocą delegacji musimy przypisać stworzone przez nas metody. Oczywiście każda z metod, musi posiadać zgodne z wybranym zdarzeniem parametry.

4 Przyklad

5 Delegaty Delegaty są często porównywane do wskaźników funkcji z języka C++. Delegacja to obiekt zawierający wywołanie metody innego obiektu (lub klasy) Pozwala się odwoływać do konkretnych funkcji(konkretnej klasy lub obiektu ) w trakcjie działania programu, a nastepnie je wykonywać Delegacje zawierają referncję do funkcji (w odróznieniu: zmienne do obiektu) W bibliotece .net istnieje klasa Delegate która zawiera wszystkie niezbedne mozliwosci

6 Delegaty Można powiedzieć, że delegaty przechowują referencję (adres w pamięci) do danych metod. Korzystając z delegatów, możesz wykonać kod znajdujący się w metodach. 

7 public delegate int Delegacja(int X);
Tworzenie delegatów public delegate int Delegacja(int X);

8 public delegate void Del(string message);
// Create a method for a delegate. public static void DelegateMethod(string message) { System.Console.WriteLine(message); } // Instantiate the delegate. Del handler = DelegateMethod; // Call the delegate. handler("Hello World");

9 Prosty przykład namespace SimpleSample {
public delegate void SimpleDelegate(); // tworzenie delegaty class Test public static void TestMethod() // jakas metoda Console.WriteLine("Metoda zostala wywolana przez delegat"); } public static void Main() SimpleDelegate sDelegate = new SimpleDelegate(TestMethod); // przekazanie metody sDelegate(); // wywołanie delegaty

10 Typ delegaty Typ delegatu ustalamy w zależności od tego tego jakiego typu są metody które chcemy przekazywać. np. Deklarujemy typ delegatu, który może zawierać referencje do funkcji bezparametrowych zwracających void

11 Parametr konstruktora delegaty i wywołanie
 Jako parametr do konstruktora delegatu podajemy identyfikator funkcji (metody), którą chcemy, żeby on wskazywał. Następnie wywołujemy delegat.

12 multicasting Mając zadeklarowany delegat, możemy podpiąć do niego dowolną metodę. Ważne jest to, aby zgodne były argumenty oraz typ zwracany. Co ciekawe, delegaty w C# obsługują tzw.multicasting. Dzięki temu możliwe jest podpięcie wielu metod do jednego delegata. Podpinanie metod pod delegat odbywa się za pomocą: pierwsza metoda podpinana jest poprzez konstruktor, podczas tworzenia instancji delegata każdą następną metodę możemy dodać/usunąć za pomocą operatorów += oraz -=

13 Użycie delegatów Przy pomocy delegatów możemy decydować w trakcie działania programu, jaka metoda zostanie wykonana.

14 Przyklad


Pobierz ppt "Akademia C# lab. 9 Zdarzenia i delegaty."

Podobne prezentacje


Reklamy Google