Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 2933|Отговор: 0

[Комуникация] .NET/C# общ T ковариантен изход и инвертор в интерфейса

[Копирай линк]
Публикувано в 3.08.2023 г. 20:35:23 ч. | | | |
Изисквания: Наскоро разглеждах .NET изходния код и открих, че в интерфейса има ключова дума за изход, като:публичен интерфейс IStringLocalizer<out T>, и после я изучаваше.

Общите типови параметри в интерфейса могат да бъдат обявени като коварианти или инвертори. Ковариацията позволява на интерфейсните методи да имат тип return, който е по-производен от типа return, дефиниран от общия параметър на тип. Инверторът позволява на интерфейсния метод да има по-малка степен на извеждане от типа аргумент, зададен от общия параметър. Генерични интерфейси с ковариантни или инверторни общи типови параметри се наричат "варианти".

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

Този скрийншот от VS2022 е много описателен – илюстрира какви ограничения носи това за генеричните модели, както е показано по-долу:



В експлоатацияФунк<ин Т, излез ТРесулт>Това означава, че типът параметър е T, а типът на връщане е TResult.

Препратка:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.






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

Mail To:help@itsvse.com