Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 2933|Ответ: 0

[Связь] .NET/C# общий T-ковариантный выход и инвертор в интерфейсе

[Скопировать ссылку]
Опубликовано 03.08.2023 20:35:23 | | | |
Требования: Недавно я изучал исходный код .NET и обнаружил, что в универсальном интерфейсе есть ключевое слово для выхода, например:общественный интерфейс IStringLocalizer<выход T>, а затем изучил его.

Общие параметры типов в интерфейсе могут быть объявлены ковариантами или инверторами. Ковариация позволяет интерфейсным методам иметь тип возврата, более производный, чем тип возврата, определяемый универсальным параметром типа. Инвертор позволяет интерфейсному методу иметь меньшую степень вывода от типа аргумента, заданного универсальным параметром. Общие интерфейсы с ковариантными или инверторными универсальными параметрами называются «вариантами».

Ковариация: Используйте ключевое слово out, чтобы объявить общий тип параметра ковариантом.
Обратный: Используйте ключевое слово in, чтобы объявить общий тип параметра как инвертор.

Этот скриншот из VS2022 очень подробен — он иллюстрирует, какие ограничения это накладывает на генерики, как показано ниже:



В составе флотаFunc<in T, out TResult>Это означает, что тип параметра — T, а тип возврата — TResult.

Ссылка:
Вход по гиперссылке виден.
Вход по гиперссылке виден.






Предыдущий:В .NET 6 используется новый таймер — PeriodicTimer
Следующий:Qv2ray подключает сервис Trojan-Go в Windows
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com