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
interface IPrinter {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.void Print(string text);Definiujemy funkcję lub metodę, której można użyć później.class ConsolePrinter : IPrinter {Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
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());
5 (po odkomentowaniu)
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.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.