Публикации по теме 'contravariance'
Ковариация и контравариантность в .NET C #
Трудно это понять? Позвольте мне упростить вам задачу.
Если вам так сложно понять, что означают ковариация и контравариантность в .NET C # , не стыдитесь этого, вы не один.
Это случилось со мной и многими другими разработчиками. Я даже знаю опытных разработчиков, которые либо не знают о них, либо используют их, но все еще недостаточно хорошо их понимают.
Насколько я понимаю, это происходит потому, что каждый раз, когда я натыкаюсь на статью о Ковариации и..
Вопросы по теме 'contravariance'
Ковариация против контравариантности в отношении наследования классов
Что означают понятия «ковариация» и «контравариантность»?
Учитывая 2 класса, Animal и Elephant (который наследуется от Animal ), я понимаю, что вы получите ошибки времени выполнения, если попытаетесь и поместите Elephant в массив Animals, и...
3256 просмотров
schedule
22.06.2023
C #: Является ли дисперсия (ковариация / контравариантность) другим словом для обозначения полиморфизма?
Я пытаюсь выяснить точное значение слов Covariance и Contravariance из нескольких статей в Интернете и вопросов по StackOverflow, и, насколько я понимаю, это всего лишь другое слово для полиморфизма .
Правильно ли я с вышеприведенным...
6812 просмотров
schedule
29.07.2023
Почему вариативность .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 просмотров
schedule
13.04.2022
Контравариантность делегата С# с лямбда-выражением
Второй тестовый метод ниже не компилируется (не может преобразовать лямбда-выражение в целевой тип D1 ). Означает ли это, что (необщая) контравариантность делегатов не работает с лямбда-выражениями?
[TestFixture]
public class MyVarianceTests
{...
775 просмотров
schedule
11.12.2022
Как вернуть параметр типа, который является подтипом массива?
Я не понимаю, почему этот код невозможен в Scala:
def getColumns[T <: Array[_]] ():Array[(String,T)] ={
Array(Tuple2("test",Array(1.0,2.0,3.0)))
}
Компилятор говорит:
Выражение типа Array[(String,Array[Double])] не...
487 просмотров
schedule
08.08.2022
Контравариантность аргументов 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 просмотров
schedule
13.09.2022
Ковариация в делегате, любой пример?
Я читаю эту статью 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 просмотров
schedule
14.06.2023
Ковариантность 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