немного другой вопрос о дисперсии на этот раз.
Я понял из эксперимента, что C # не позволяет переопределить виртуальную функцию с помощью контравариантной функции?Если да, то как вы это делаете, так как я продолжаю получать «Перегрузка подходящего метода не найдена».Если это не так, почему бы и нет?если базовый класс указывает, что значение в всегда будет int, и подкласс может взять объект, в чем проблема?
То же, что и для возвращаемых типов, должно быть ковариантным в их сигнатуре переопределения
Какие языки позволяют вам это делать?(C ++ / Java я смотрю на вас) и если они позволяют вам использовать, дисперсия, какие типы?(возвращаемый тип / список аргументов и т. д.)
Не могли бы вы иметь несколько переопределений?Я не понимаю, почему не так долго, пока подписи были технически уникальными.
Почему C # / CLR не поддерживает переопределение метода co / contra-variance?
Iпрочитайте это, и я не вижу ответов ни на один из вопросов.Я знаю об общей дисперсии, и я знаю, что это круто.Я хочу знать о дисперсии сигнатуры метода, и не только в C #, но и в C # (т.е. включая, но не ограничиваясь).Если его не существует, я хотел бы получить подтверждение и объяснение (это детали реализации? Является ли моя теория типов неправильной? Просто CLR / C # не поддерживает эту особую функцию? Это то, что у меня нет »я не думаю, что мне приходится иметь дело с реализацией CLR, и поэтому я не знаю конкретных сложных деталей?)