Вопросы по теме 'contravariance'

Преобразование из IEnumerable‹Object› в IEnumerable‹string›
Недавно я обнаружил очень удивительное поведение в С#. У меня был метод, который принимает IEnumerable<Object> в качестве параметра, и я передавал IEnumerable<string> , но это невозможно. В то время как в С# все можно преобразовать в...
15386 просмотров
schedule 18.03.2023

Разница между ковариацией и контр-дисперсией
Мне сложно понять разницу между ковариацией и контравариантностью.
31787 просмотров
schedule 06.05.2022

может ли кто-нибудь объяснить связь между ковариантностью/контравариантностью типов и теорией категорий?
Я только начинаю читать о теории категорий и был бы очень признателен, если бы кто-нибудь мог объяснить связь между контравариантностью/ковариантностью CS и теорией категорий. Какими могут быть некоторые примеры категорий (т.е. каковы их...
749 просмотров

Объяснение ковариантности, инвариантности и контравариантности простым английским языком?
Сегодня я прочитал несколько статей о ковариантности, контравариантности (и инвариантности) в Java. Я читал статьи в Википедии на английском и немецком языках, а также некоторые другие сообщения в блогах и статьи IBM. Но я все еще немного не...
37008 просмотров
schedule 07.06.2022

Разве ковариация/контравариантность не должна позволять это в С# 4.5?
private Dictionary<Type, List<IDataTransferObject>> dataStore = new Dictionary<Type, List<IDataTransferObject>>(); public void Insert<T>(T dto) where T : IDataTransferObject { if (!dataStore.ContainsKey(typeof(T)))...
683 просмотров
schedule 09.09.2022

Почему эти контравариантные типы аргументов считаются безопасными?
Я только что узнал в своем классе языков программирования, что «контравариантные типы аргументов на самом деле были бы безопасными, но они не были сочтены полезными и, следовательно, не поддерживаются в практических языках». Несмотря на то, что они...
146 просмотров
schedule 13.09.2022

Частичное применение дженериков для ограничений типа
В настоящее время я пытаюсь создать общий интерфейс, в котором каждый (общий) класс, производный от него, будет иметь метод, принимающий делегата, который принимает параметр типа и возвращает другой класс того же типа, только с другим параметром типа....
106 просмотров

Использование подтипа в качестве параметра типа в классе
Рассмотрим следующие фрагменты кода public static <T> String typeName1(Class<T extends Object> c) { return c.getSimpleName(); } public static String typeName2(Class<? extends Object> c) { return...
31 просмотров
schedule 22.06.2023

Общее свойство класса Kotlin
Я знаю, что это может показаться повторяющимся вопросом, но я озадачен тем, как работают инвариантность, ковариантность и контравариантность. Я не могу понять, почему я не могу скомпилировать этот фрагмент: class Test<X:...
195 просмотров

Используйте суперметод с параметром подтипа
Я пытаюсь реализовать некоторую функцию в суперклассе, поэтому мне не нужно всегда повторять ее в своих дочерних элементах. Образец: trait Animal { def applyF(transition: Animal => Animal): Animal = transition(this) // Animal as param and...
46 просмотров

Mediatr с универсальным обработчиком и запросом
Я работаю над приложением веб-API ASP.NET Core 2.2 с Mediatr. У меня есть обработчик, который выглядит так - public class MyQueryHandler<T> : IRequestHanlder<MyQuery<T>, IQueryable<T>> { public...
6202 просмотров

C # не понимает ковариацию и контравариантность делегатов
В течение долгого времени я пытался понять полезность входных и исходящих параметров в связи с дженериками в C #, и я просто не могу вбить это в голову (я знаю, как часто этот вопрос задают в StackOverflow). Я обычно понимаю, что такое ковариация и...
180 просмотров

Почему нельзя перечислить‹? extends Animal› заменить на List‹Animal›?
Рассмотрим следующий код: public class Main { static class Animal {} static class Dog extends Animal {} static List<? extends Animal> foo() { List<Dog> dogs = new ArrayList<>(); return dogs; }...
159 просмотров
schedule 25.10.2023

Алгоритм получения естественной карты
Эта запись Reddit Эдварда Кметта дает конструктивное определение естественная карта , та, что из теоремы о свободе для fmap (которую я прочитал в еще одном сообщение Эдварда Кметта ): Для заданных f , g , h и k таких, что f . g = h...
124 просмотров