Czy możesz wyjaśnić zasadę jednolitej (kaczej) typizacji i jak jest ona stosowana w programowaniu?
sobes.tech AI
Odpowiedź od AI
Typowanie kaczkowe (duck typing) to koncepcja w programowaniu, w której typ obiektu jest określany nie przez jego klasę lub dziedziczenie, lecz przez obecność określonych metod i właściwości.
Zdanie "Jeśli coś wygląda jak kaczka, pływa jak kaczka i kwacze jak kaczka, to znaczy, że to kaczka" odzwierciedla istotę: nie typ obiektu jest ważny, lecz jego zachowanie.
W C# nie jest to wbudowany mechanizm jak w językach dynamicznych, ale można to imitować za pomocą interfejsów lub typowania dynamicznego (dynamic). Na przykład, jeśli obiekt implementuje potrzebne metody, można go używać bez ścisłej kontroli typu.
Przykład z dynamic:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("Kwa kwa!");
}
}
MakeItQuack(new Duck());
Tutaj ważne jest, aby przekazany obiekt miał metodę Quack, w przeciwnym razie wystąpi błąd podczas wykonywania.