Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 2933|Відповідь: 0

[Зв'язок] .NET/C# універсальний T коваріантний вихід і інвертор в інтерфейсі

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

Універсальні типові параметри інтерфейсу можуть бути оголошені як коваріанти або інвертори. Коваріантність дозволяє інтерфейсним методам мати тип повернення, який є більш похідним, ніж тип повернення, визначений загальним параметром типу. Інвертор дозволяє інтерфейсному методу мати менший ступінь виведення від типу аргументу, заданого загальним параметром. Загальні інтерфейси з коваріантними або інверторними параметрами типу називають «варіантами».

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

Цей скріншот з VS2022 дуже описовий — він ілюструє, які обмеження це накладає на генерики, як показано нижче:



На службіFunc<in T, вихід TResult>Це означає, що тип параметра — T, а тип повернення — TResult.

Посилання:
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.






Попередній:У .NET 6 використовується новий таймер — PeriodicTimer
Наступний:Qv2ray підключає сервіс Trojan-Go у Windows
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com