C# Wydarzenia

C# Wydarzenia

Wydarzenia należy odpowiedzieć jak najszybciej przez aplikacje. Tak, że przerwania, komunikacja między procesami odbywa się poprzez wykorzystanie zdarzeń. Działania użytkowników, takie jak klawisze, kliknięcia i ruchy myszy, takie jak zdarzenia generowane przez system, są przykładami działań użytkownika. W C#wydarzenie jest delegatem, który został zamknięty. Delegat określa deklarację metody obsługi zdarzenia dla subskrybenta klasy. W artykule określamy zdarzenie, które pojawia się w C#, a także powiadomi o innych klasach, a także omówić obsługę zdarzeń zdarzenia w C#.

Co to jest wydarzenie w C# w Ubuntu 20.04?

Delegaci są używane do definiowania zdarzeń w C#, które są podzbiorem delegatów. Wydawca jest zobowiązany do podniesienia zdarzenia w C#, a klasa subskrybentów jest również wymagana do odbierania i obsługi wydarzenia. Wydarzenie jest publikowane przy pomocy klasy wydawcy. Klasa subskrybentów to dodatkowa klasa, która przetwarza takie zdarzenia. Paradygmat wydawcy-subscriber jest używany do wydarzeń w C#. Zasadniczo klasa, która wysyła wydarzenie, jest znana jako klasa wydawcy, a klasa, która otrzymuje wydarzenie, jest znana jako klasa subskrybentów.

Składnia deklarowania wydarzenia w C# w Ubuntu 20.04

Składnia funkcji lub metody jest ważna w programowaniu, a my mamy prostą składnię dla funkcji obsługi zdarzeń jest następująca:

Delegat publiczny void delegateHandler (); // delegata

Po pierwsze, typ zdarzenia delegata musi zostać określony przed ogłoszeniem wydarzenia w klasie.

Wydarzenie publiczne void delegateHandler EventHandler (); // wydarzenie

Poprzedni kod tworzy „delegateHandler” za pomocą delegata słów kluczowych i zdarzenia „EventHandler”, które wywołuje delegat po jego podniesieniu. Zauważ, że tylko w klasie, w której zadeklarowano zdarzenie, można użyć do odwołania się.

Jak zadeklarować wydarzenia w C# w Ubuntu 20.04

Aby zrozumieć, jak działają moduł obsługi zdarzeń i wydarzeń w C#, powinniśmy mieć praktyczne przykłady programowania. Te przykłady są wdrażane w Ubuntu 20.04 Za pomocą kompilatora mono dla C#.

Przykład nr 1: Program używania delegatów w C # w Ubuntu 20.04

Przykładem jest po prostu deklarowanie delegata, a także deklarowanie zmiennej delegata ze słowem kluczowym zdarzenia. Zgłaszaliśmy zdarzenie następującego kodu w klasie wydawcy.

Zaimportowaliśmy bibliotekę systemową C# jako „Korzystanie z systemu”, która pomaga nam uwzględnić klasy i funkcje, takie jak klasa konsoli i funkcja pisania. Przestrzeń nazw otrzymuje nazwę „MyApp”, która identyfikuje i zawiera nasz kod. Delegat jest tutaj zdefiniowany jako „Del” typu i przekazuje „Str” ciągu jako parametr. Następnie klasa wydawcy jest tworzona jako „EventExample”. W klasie wydawcy zadeklarowaliśmy delegat „Del” i używając modyfikatora „zdarzenia”, zadeklarowaliśmy zdarzenie dla delegata „Del” typu „Del”.Następnie nazwali „EventExample” i stworzyliśmy obiekt „ten.Wydarzenie".

Obiekt jest inicjowany z delegatem „Del” za pomocą nowego słowa kluczowego i przekazywania innego obiektu „to.Hellouser ”. Nazwaliśmy „hellouser” jako typ ciągu, który przeszedł z nowym obiektem „Myuser” jako parametr. Instrukcja powrotu zwróci wartość Myuser wraz z ciągiem „Hello”. Void Main wywołał klasę wydawców „EventExample”, w której przypisaliśmy wartość „Myuser” w „OBJ. Wydarzenie". „Obj. Zdarzenie ”jest inicjowane dla zmiennej„ wyniku ”, którą przeszliśmy w konsoli.Metoda WriteLine do wyświetlania.

Dane wyjściowe powyższego wykonania programu jest wyświetlane na ekranie konsoli.

Przykład nr 2: Program konsumpcji wydarzenia w C # w Ubuntu 20.04

Klasa subskrybenta musi zarejestrować się na zdarzenie i obsłużyć ją z metodą, której deklaracja pasuje do delegata, jak pokazano w poniższym programie.

Wydarzenie „MyProcessCompleted” jest subskrybowane do klasy „MyProgram”. Używa operatora „+=” do rejestracji w wydarzeniu. Pamiętaj, że możemy dodać metody do listy wywołującej delegata multiemisji w ten sam sposób. Wydarzenie jest tutaj obsługiwane metodą „P1_MyProcessCompleted ()”, która pasuje do deklaracji typu „powiadomienia” delegata i konsoli. Metoda WriteLeline jest wywoływana w celu wydrukowania konkretnego komunikatu. Metoda OnProcessCompleted () jest wywoływana na końcu metody startProcess (), która podnosi zdarzenie.

Następnie nazwa zdarzenia „OnProcessCompleted” jest wywoływana i zdefiniowana za pomocą chronionej metody wirtualnej. Metoda OnProcessCompleted () wykorzystuje Completed Processcomplete. Invoke (), aby zadzwonić do delegata. To weryfikuje najpierw, że wydarzenie „MyProcess Completed” nie powinno być zerowe, a następnie nazywa delegat „powiadomieniem”.

Po wykonaniu kodu ogólnego mamy wydrukowane dane na ekranie dołączonym poniżej.

Przykład nr 3: Program przekazywania danych w wbudowanym eventHandlerdelegate w C # w Ubuntu 20.04

Większość zdarzeń wysyła dane do swoich subskrybentów. Klasa EventArgs służy jako podstawa wszystkich klas danych zdarzeń. Aby przekazać dane do obsługi, używamy EventHandler. Kod jest zilustrowany poniżej.

Tutaj mamy klasę o nazwie „EventHandlerProgram”. W klasie mamy nieważną główną funkcję, która ma obiekt „EventHandlerProcess” jako P1. Obiekt jest inicjowany z nowym słowem kluczowym i wywoływany przez EventHandlerProcess (). P1_ProcessCompleted jest tutaj zarejestrowany jako zdarzenie za pomocą operatora „+=”. Na końcu pustki głównej funkcja startProcess () jest również wywoływana dla metody completed onProcess, która podnosi zdarzenie. Następnie mamy obsługę zdarzeń „P1_Process Complet”, w którym przekazaliśmy obiekt jako „źródło” i typu bool jako „isccessful”.

Konsolepriteline wydrukuje logiczną instrukcję. Klasa „EventHandler” jest tworzona, w której mamy wbudowaną EventHandler do ogłoszenia wydarzenia. Ponadto wywołaliśmy metodę StartProcess, która ma blok próbny do obsługi wyjątków. „OnProcess Completed” jest wywoływany z chronioną metodą wirtualną. W funkcji OnProcessCompleted () używamy invoke () do podniesienia zdarzenia, określiliśmy „to” jako nadawcę i bool jako „isccessful”. Należy zauważyć, że przewodnicy otrzymują jedną wartość BOOL, która wskazuje, czy proces się powiódł, czy nie powiódł.

Wyjście kompilacji kodu jest pokazane na poniższym obrazku.

Przykład nr 4: Program deklarowania i wychowywania wydarzeń w C # w Ubuntu 20.04

Poniżej znajduje się przykład, w którym musimy zadeklarować i podnieść zdarzenie w języku programowania C#, wykorzystując typy delegata podstawowego.

W powyższym przykładzie mamy klasę „arytmetyki” jako klasa wydawcy, w której wykonaliśmy potrzebną funkcjonalność, która sprawdza, czy klasa wywołująca subskrybowała wydarzenie, czy nie. Delegat jest ogłoszony w klasie wydawcy jako delegat, a wydarzenie jest ogłoszone jako „Myvent”. Void Add przyjmuje „x1” i „y1” jako wartości parametrów. W bloku dodawania pustki zadzwoniliśmy do delegata za pośrednictwem instrukcji IF-ELSE w celu sprawdzenia subskrypcji. Wydarzenie „Myvent” jest podniesione w instrukcji IF-Else i drukuje wiadomość metodą WriteLine. Następnie mamy klasę subskrybentów jako operacje z wymaganymi metodami. Wykorzystaliśmy operatora += w klasie operacyjnej, aby zasubskrybować wydarzenie „Myvent” i nazwaliśmy obsługę „MyEventHandler” do wykonywania odpowiednich operacji po podniesieniu wydarzenia. Metoda obsługi „MyEventHandler” w klasie operacyjnej ma taką samą implementację, jak w metodzie delegata „delegata” w klasie „Arytmetyka”.

Możesz zobaczyć dane wyjściowe podstawowej operacji arytmetycznej według obsługi zdarzeń w C# poniżej.

Wniosek

Głęboko przeszliśmy przez wydarzenie C#, omawiając wydarzenia w C# i podstawowej składni, którą wdrażamy w programowaniu. Wykonaliśmy również przykład zdarzeń i obsługi zdarzeń, pokazując, jak tworzyć proste zdarzenia, podnieść zdarzenie, a także subskrybować zdarzenie, pokazując ich wyjście na ekranie terminali Ubuntu. Są to bardzo podstawowe przykłady, które mogą pomóc ci jasno zrozumieć.