Jeżeli jesteś na studiach, to masz czas, aby się dokształcić w kwestii delegatów. Mogą one być dla Ciebie nawet jakąś czarną magią. Natomiast, jeśli już zacząłeś pracę, to lepiej wiedzieć, jak one działają, ponieważ nie ma już czasu na domysły i szukanie o nich informacji.

 
Dell Alienware X51 R3 Charger
Dell Precision M4600 Charger

Czym są delegaty?

Czym są delegaty?

 

Chociaż wydają się trudne, to mamy nadzieję, że ten wpis trochę rozjaśni wam w głowach.

 

Co to są delegaty?

Delegata to wskaźnik na funkcję lub kilka funkcji, które wywołają się po kolei. Przy jej definiowaniu powstaje nowy typ zmiennej. Żeby go użyć konieczne jest zadeklarowanie tej zmiennej. Aby utworzyć delegatę, należy wykorzystać słowo kluczowe delegate. Tworzone delegaty nie posiadają implementacji. Sygnatura delegata jest określana przez argumenty, jaki przyjmuje i przez zwracany typ. Przy korzystaniu z delegatów trzeba pamiętać, że delegaty są po prostu nowymi typami danych. Jednak trzeba zaznaczyć, że przy tworzeniu zmiennych ich typów, da się przypisać do nich metody, które odpowiadają ich sygnaturze. Do delegata da się przypisać więcej niż jedną metodę. To powoduje, że w chwili wywołania delegata wywoływane są również wszystkie metody przypisane do niego.

 

Co to są zdarzenia?

Zdarzenia są elementami stosowanymi bardzo często. To akcje wykonywane w chwili wystąpienia pewnej sytuacji, na przykład takich jak ruch myszką lub kliknięcie na przyciska. Zdarzenia w języku C# są oparte na wcześniej opisanych delegatach.Aby zadeklarować zdarzenie, trzeba użyć słówka kluczowego event. Aby stworzyć zdarzenie, potrzebujesz czterech elementów: delegacji, klasy argumentów dziedziczącej z klasy EventArgs, klasy posiadającej metody obsługujące zdarzenia oraz klasy odpowiedzialnej za wykonywanie operacji i wywoływanie zdarzeń.

 

Podsumowanie

Delegaty oraz zdarzenia są bardzo przydatnymi mechanizmami w języku C#. Dzięki nim można przede wszystkim zwiększyć czytelność kodu, bo ograniczamy ilość instrukcji warunkowych i kod jest bardziej zrozumiały. Gdy piszesz aplikacje desktopowe (WinForms, WPF), to delegaty i zdarzenia będą Ci towarzyszyły przez cały czas. Pisanie aplikacji okienkowych oparte jest w bardzo dużym stopniu na zdarzeniach.