Вопросы по теме 'contravariance'
Почему наследование не работает так, как я думаю, должно работать?
У меня есть некоторые проблемы с наследованием, поскольку у меня есть группа взаимосвязанных абстрактных классов, которые необходимо переопределить вместе для создания клиентской реализации. В идеале я хотел бы сделать что-то вроде следующего:...
1165 просмотров
schedule
27.04.2023
Как универсальная ковариация и контравариантность реализованы в C # 4.0?
Я не был на PDC 2008, но услышал новости о том, что C # 4.0 объявлен для поддержки универсальной ковариантности и контр-дисперсии. То есть List<string> можно назначить List<object> . Как такое могло быть?
В книге Джона Скита C #...
36488 просмотров
schedule
02.04.2022
Переопределение универсальных методов Java
Я хотел создать интерфейс для копирования объекта в целевой объект того же класса. Простой способ - использовать кастинг:
import org.junit.Test;
import org.junit.internal.runners.JUnit4ClassRunner;
import org.junit.runner.RunWith;...
4868 просмотров
schedule
07.10.2022
Общие подстановочные знаки в объявлениях переменных в Scala
В Java я мог бы сделать это:
class MyClass {
private List<? extends MyInterface> list;
public void setList(List<MyImpl> l) { list = l; }
}
... при условии, что ( MyImpl implements MyInterface ), конечно.
Какой аналог...
14220 просмотров
schedule
22.12.2022
Объяснение контравариантности
Во-первых, я прочитал много объяснений SO и блогов о ковариации и контравариантности, и большое спасибо Эрику Липперту за создание такой великолепной серии статей о ковариации и контравариантности .
Однако у меня есть более конкретный вопрос,...
20926 просмотров
schedule
23.05.2022
Приведите примеры функций, демонстрирующих ковариантность и контравариантность в случаях как перегрузки, так и переопределения в Java?
Пожалуйста, покажите хороший пример ковариантности и контравариантности в Java.
43957 просмотров
schedule
04.07.2022
Почему концепции ковариации и контравариантности применимы при реализации методов интерфейса?
Вариант использования примерно такой:
public class SomeClass : ICloneable
{
// Some Code
// Implementing interface method
public object Clone()
{
// Some Clonning Code
}
}
Теперь мой вопрос: Почему невозможно...
939 просмотров
schedule
02.03.2023
Как IEnumerable‹T› Contra-вариант?
Это сообщение ( http://blogs.msdn.com/b/brada/archive/2005/01/18/355755.aspx ) говорит, что IEnumerable<T> является Contra-вариантом. Однако тип T является ковариантным, потому что это параметр out . Итак, в каком контексте...
2892 просмотров
schedule
19.06.2022
Проблемы контравариантности со свойствами событий
Предположим, у меня есть простой подкласс EventArgs:
class MyArgs : EventArgs { }
Представьте, что у меня есть два класса с событиями:
class MyData {
public event EventHandler<MyArgs> Method;
}
class MyObject {
public event...
145 просмотров
schedule
20.02.2022
Универсальные модели C# 4.0 и ASP.net MVC
Похоже, что в C# 4.0 спецификаторы вариации применимы только к типам интерфейсов.
Итак, допустим, у меня есть классы ViewModel/EditModel и простая иерархия моделей.
class MyEditModel<T> where T : Base { ... }
class Derived1 : Base { ......
615 просмотров
schedule
15.04.2022
Общая функция «карта» для кортежей Scala?
Я хотел бы отобразить элементы кортежа Scala (или тройки,...), используя одну функцию, возвращающую тип R. Результатом должен быть кортеж (или тройка,...) с элементами типа R.
Хорошо, если элементы кортежа относятся к одному типу, сопоставление не...
6062 просмотров
schedule
27.08.2022
Контравариантность и val
Как и почему «val» и «case» влияют на систему типов? (особенно дисперсия)
Welcome to Scala version 2.8.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information....
494 просмотров
schedule
01.04.2023
Ковариантность, контравариантность и устранение лишних параметров типа
Учитывая следующую иерархию классов:
abstract class A { }
abstract class B { }
abstract class C { }
abstract class D<TA, TB, TC>
where TA : A
where TB : B
where TC : C { }
class E : A { }
class F : B { }
class G : C { }
class H...
178 просмотров
schedule
15.03.2024
Разница в выражении‹Func‹T,bool››
Только быстро и коротко, на этот раз. Func<T,TResult> является контравариантным ( ИЗМЕНИТЬ : параметр типа T). Сейчас я работаю не с Func<T,TResult> , а с Expression<Func<T,TResult>> и, похоже, зашел в тупик....
3509 просмотров
schedule
13.04.2023
Ковариация и контравариантность, ошибки времени компиляции
Я читал о ковариантности и контравариантности - Википедия говорит о следующем :
Предположим, у вас есть класс, представляющий человека. Человек может обратиться к врачу, поэтому этот класс может иметь метод virtual void Person::see(Doctor d)....
187 просмотров
schedule
23.11.2022
Преобразование из Func‹object,string› в Func‹string,string› работает, но в Func‹int,string› не работает
У меня есть следующий код:
static Func<object, string> s_objToString = (x) => x.ToString();
static Func<string, string> s_stringToString = s_objToString; //compiles
static Func<int, string> s_intToString = s_objToString;...
1752 просмотров
schedule
12.02.2023
ковариация / противодействие
Предположим, у меня есть:
class Event {}
class DoorBell extends Event {}
class PhoneCall extends Event {}
class EventGenerator {
static Event getEvent() {
if (today.isSunday())
return new DoorBell()
else...
112 просмотров
schedule
22.08.2022
MonoTouch и поддерживающие варианты универсальных интерфейсов
Приведенный ниже пример отлично компилируется в обычном Mono 2.10.9:
namespace covarianttest
{
public interface ITest<out T> : IEnumerable<T>
{
}
}
Однако, когда я пытаюсь скомпилировать его с MonoTouch 6.0.8, я...
211 просмотров
schedule
22.06.2023
ковариантный тип T встречается в контравариантном положении
Я знаю, что этот вопрос уже задавали раньше, но либо ответы не относятся к этому случаю, либо я их не понимаю.
В принципе, почему не работает следующий (простой пример, который воссоздает мою проблему)?
class Test[+T] {
var list: List[T] = _...
5759 просмотров
schedule
01.06.2022
Общее ограничение для действия не работает должным образом
У меня возникли проблемы с пониманием того, почему следующий фрагмент не дает мне ошибки
public void SomeMethod<T>(T arg) where T : MyInterface
{
MyInterface e = arg;
}
Но этот, который, как я ожидаю, будет работать из-за ограничения...
1546 просмотров
schedule
29.11.2023