Могу ли я иметь тип (пока забывая о его семантике), который может быть как ковариантным, так и контравариантным?
например:
public interface Foo<in out T>
{
void DoFooWith(T arg);
}
Загляните в блог Эрика Липперта о дисперсионном мясе и картофеле в C # 4.0, так как мало что еще где-нибудь освещает эту тему.
Я все равно попробовал, он не только не позволяет этого, но и говорит мне, что я упускаю весь смысл. Мне нужно понять связь между только для чтения, только для записи и дисперсией.
Полагаю, мне нужно еще кое-что почитать.
Но, тем не менее, любые короткие, вызывающие прозрение ответы приветствуются.