Публикации по теме 'contravariance'


Ковариация и контравариантность в .NET C #
Трудно это понять? Позвольте мне упростить вам задачу. Если вам так сложно понять, что означают ковариация и контравариантность в .NET C # , не стыдитесь этого, вы не один. Это случилось со мной и многими другими разработчиками. Я даже знаю опытных разработчиков, которые либо не знают о них, либо используют их, но все еще недостаточно хорошо их понимают. Насколько я понимаю, это происходит потому, что каждый раз, когда я натыкаюсь на статью о Ковариации и..

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

Ковариация против контравариантности в отношении наследования классов
Что означают понятия «ковариация» и «контравариантность»? Учитывая 2 класса, Animal и Elephant (который наследуется от Animal ), я понимаю, что вы получите ошибки времени выполнения, если попытаетесь и поместите Elephant в массив Animals, и...
3256 просмотров

C #: Является ли дисперсия (ковариация / контравариантность) другим словом для обозначения полиморфизма?
Я пытаюсь выяснить точное значение слов Covariance и Contravariance из нескольких статей в Интернете и вопросов по StackOverflow, и, насколько я понимаю, это всего лишь другое слово для полиморфизма . Правильно ли я с вышеприведенным...
6812 просмотров

Почему вариативность .NET 4 для аргументов универсального типа не распространяется также и на классы?
Возможные дубликаты: Почему в C # 4.0 нет общей вариации для классов? Почему C # (4.0) не допускает ко- и контравариантности в типах универсальных классов? Новая ко- и контравариантность .NET 4.0 для аргументов универсального типа...
1234 просмотров
schedule 01.09.2022

Ковариация и контравариантность для типов с подстановочными знаками
Не могли бы вы объяснить, почему это возможно сделать: import java.util.ArrayList; import java.util.List; public class Covariance { class A { } class B extends A { } class C extends A { } public void testSmth()...
670 просмотров
schedule 02.05.2022

Ковариация против дисперсии
У меня есть небольшие сомнения в отношении CoVariance и ContraVariance .. См. Следующий код .. interface IGetElement<out T> { int Counter { get; } T GetNext(); } interface IAddElement<in T> { void Add(T t); } class...
264 просмотров
schedule 11.04.2022

Как правильно макетировать в .NET 3.5
Это должно быть тривиально, но, будучи новичком в TDD, я не могу понять, как это сделать. Допустим, у нас есть приложение WinForms, которое в процессе запуска ищет библиотеки DLL в заданных папках для динамического заполнения своей строки главного...
236 просмотров

Контравариантность делегата С# с лямбда-выражением
Второй тестовый метод ниже не компилируется (не может преобразовать лямбда-выражение в целевой тип D1 ). Означает ли это, что (необщая) контравариантность делегатов не работает с лямбда-выражениями? [TestFixture] public class MyVarianceTests {...
775 просмотров

Как вернуть параметр типа, который является подтипом массива?
Я не понимаю, почему этот код невозможен в Scala: def getColumns[T <: Array[_]] ():Array[(String,T)] ={ Array(Tuple2("test",Array(1.0,2.0,3.0))) } Компилятор говорит: Выражение типа Array[(String,Array[Double])] не...
487 просмотров

Контравариантность аргументов EventHandler‹T› в .NET 4.0. Соответствует ли он своему определяющему типу?
Согласно документации MSDN делегаты в обработчиках событий поддерживают контравариантность , например, вы можете использовать один обработчик событий с EventArgs в качестве общего параметра EventHandler<T> для другого события с другим...
584 просмотров
schedule 14.02.2024

Почему ReSharper предлагает сделать параметр типа T контравариантным?
ReSharper предлагает мне сделать параметр типа T контравариантным, изменив это: interface IBusinessValidator<T> where T: IEntity { void Validate(T entity); } В это: interface IBusinessValidator<in T> where T: IEntity {...
10695 просмотров
schedule 12.07.2022

Тип не может использоваться как параметр типа «T» в универсальном типе или методе «BaseController ‹T›». Нет неявной ссылки
Я пытаюсь создать общий код для упрощения своих кодов (это проект веб-API), но каким-то образом это оказалось сложнее, чем я ожидал. Я пытаюсь реализовать примерно следующее: Чтобы упростить весь мой реальный код, я написал следующее:...
1886 просмотров

Ковариация в делегате, любой пример?
Я читаю эту статью msdn , пример контравариантности (клавиатура и мышь событие) великолепен и полезен, в то время как пример ковариации (млекопитающее и собака) не выглядит так. Событие клавиатуры и мыши прекрасно, так как вы можете использовать...
1022 просмотров
schedule 17.08.2022

Это ошибка в документации msdn для ковариации у делегатов?
В в этой документации msdn о ковариации и контравариантности объясняется, что ключевое слово out используется для объявления ковариантности универсального параметра. Вы можете объявить ковариантный параметр универсального типа с помощью...
75 просмотров
schedule 22.11.2022

Функции контравариантны по своим типам аргументов и ковариантны по своим возвращаемым типам.
Я прочитал это и this отвечает перед публикацией этого вопроса, но я все еще немного не понимаю своего понимания этой темы, как описано ниже: Я понимаю, что независимо друг от друга означают ковариант и контравариант. Если у меня есть...
2013 просмотров
schedule 03.11.2022

Контравариантность в Котлине
Я никогда по-настоящему не понимал дженерики в Java, так что, похоже, это касается Котлина. Рассмотрим следующий фрагмент кода (это надуманный пример): class AnyComparator: Comparator<Any> { override fun compare(o1: Any, o2: Any): Int...
567 просмотров
schedule 25.04.2023

Как изменить параметр интерфейса?
Библиотека, которую я использую для работы с БД, предоставляет удобный интерфейс для сохранения/загрузки данных без приведения Put(c context.Context, key *Key, src interface{}) (*Key, error) Get(c context.Context, key *Key, dst interface{}) error...
25 просмотров
schedule 07.08.2023

Требование типа [B ›: A] для оператора ++ в Scala Lists
У меня есть основной вопрос относительно оператора ++ в списках Scala и обозначения типа [B >: A]. Чаще всего это объясняют как «Принять любой B, который является суперклассом A». Но затем я могу сделать что-то вроде приведенного ниже кода и...
77 просмотров

Ковариантность Scala, путаница с контравариантностью
Я новичок в Scala, и это действительно очень запутанно. Пожалуйста помогите. /** 2 * Remember! In Scala, every function that takes one argument 3 * is an instance of Function1 with signature: 4 * 5 * trait Function1[-T, +S] extends...
123 просмотров
schedule 23.02.2023

Проблема дисперсии Котлина
Я играю с концепцией цепочки узлов, каждый из которых может иметь разные типы ввода и вывода (хотя все типы ввода/вывода будут производными от общего родительского типа), где данные передаются от узла к узлу и трансформировался в пути. Вот пример:...
62 просмотров
schedule 11.06.2023