Dalej•LEKCJA 17 / 24

Interfejsy

Kurs C# · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

Interfejs określa kontrakt bez wymuszania jednej implementacji.

Jak to działa?

Klasa realizująca interfejs powinna udostępniać wymagane metody. Pozwala to przekazywać zależności przez wspólny typ.

Przykład 1 — poznaj zapis

interface IPrinter {
    void Print(string text);
}

class ConsolePrinter : IPrinter {
    public void Print(string text) => Console.WriteLine(text);
}

Możesz stworzyć inną implementację IPrinter bez zmiany kontraktu.

Przeczytaj kod linijka po linijce

  1. interface IPrinter {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
  2. void Print(string text);Definiujemy funkcję lub metodę, której można użyć później.
  3. class ConsolePrinter : IPrinter {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
Oczekiwany wynik / efektpo uruchomieniu przykładu
Wypisuje podany tekst po wywołaniu Print.

Przykład 2 — podobny problem, inne dane

Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.

interface ICounter { int Get(); }
class Counter : ICounter { public int Get() => 5; }
// Console.WriteLine(new Counter().Get());
Wynik drugiego przykładupo uruchomieniu przykładu
5 (po odkomentowaniu)
Sprawdź, czy rozumiesz

Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.

Spróbuj samodzielnie

Zaprojektuj interfejs INotifier z metodą Send.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.