Я слышал слово Interface Duck Typing, но не понимаю, что это такое? Поэтому я прочитал wiki об этом, и они сказали:
В компьютерном программировании с объектно-ориентированными языками программирования утиная типизация - это стиль ввода, в котором методы и свойства объекта определяют действительную семантику, а не ее наследование от конкретного класса или реализацию явного интерфейса. Название концепции относится к тесту утки.
Но все еще не мог понять, что это. Поэтому я видел их программу, но они используют ключевое слово dynamic
для вызова функций quack()
и feather()
всех классов.
Я бы попросил вас всех, пожалуйста, просто объясните, что такое интерфейс Duck Typing и как реализовать в С# v2.0, потому что ключевое слово dynamic
отсутствует.
using System;
namespace DuckTyping
{
public class Duck
{
public void Quack()
{
Console.WriteLine("Quaaaaaack!");
}
public void Feathers()
{
Console.WriteLine("The duck has white and gray feathers.");
}
}
public class Person
{
public void Quack()
{
Console.WriteLine("The person imitates a duck.");
}
public void Feathers()
{
Console.WriteLine("The person takes a feather from the ground and shows it.");
}
}
internal class Program
{
private static void InTheForest(dynamic duck)
{
duck.Quack();
duck.Feathers();
}
private static void Game()
{
Duck donald = new Duck();
Person john = new Person();
InTheForest(donald);
InTheForest(john);
}
private static void Main()
{
Game();
}
}
}