«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Может ли C# реализовать частичный общий вывод типа, и если да, то как?

Может ли C# реализовать частичный общий вывод типа, и если да, то как?

Опубликовано в 2025-03-22
Просматривать:799

Can C# Implement Partial Generic Type Inference, and If So, How?

может быть реализован частичный общий тип типа в C#?

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

решения для частичного общего типа вывода

Метод 1: Использование ограничений типа

]

синтаксис, аналогичный желаемому коду, с использованием treg (& &&]

этот подход требует определения оба общих аргументов типа во время вызова, которые не могут быть желательны во всех случаях.

Метод 2: Использование двух функций с rawper

. ThatArewrapper that (этот источник ) { вернуть новое, что areWrapper (источник); } Публичный класс, который areWrapper { // ... Выполнение }

и:

listOffRuits.That (). Arm (). Где (banana => banana.peel! = Color.black)
public static TReg Parameter(this TReg p, string name, T value)
    where TReg : ParameterizedRegistrationBase
. Этот работник требует дополнительных шагов, но позволяет получить более гибкость в определении типа результата. &&? Class

, введя методы расширения непосредственно в базовый класс, проблема можно избежать. Однако этот подход удаляет способность использовать методы расширения в других классах в будущем. Заключение

частичный общий тип. Конкретный подход для использования зависит от конкретных требований и связанных с этим компромиссов.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3