Результаты поиска по запросу "covariance"
Параметр должен быть безопасным для ввода ошибки
Вот часть моего кода:
Преобразовать список <DerivedClass> в список <BaseClass>
Хотя мы можем наследовать от базового класса / интерфейса, почему мы не можем объявитьList<> используя тот же класс / интерфейс? interface A { } class B : A { } class C : B { } class Test { static void Main(string[] args) { A a = new C(); // OK ...
Договорились, а как насчет обновленной версии?
t можно использовать обобщенные значения, чтобы функция могла принимать аргументы, которые поддерживают один или несколько интерфейсов, и являются производны...
Почему массивы ковариантны, а дженерики инвариантны?
От Эффективной Явы Джошуа Блоха, Массивы отличаются от универсального типа двумя важными способами. Первые массивы ковариантны. Обобщения являются инвариантами.Ковариант просто означает, что если X является подтипом Y, то X [] также будет ...
виды ошибок, на которые вы ссылаетесь.
4 вводит ковариацию. Я думаю, это полезно. В конце концов, MS прошла через все трудности, добавив его в язык C #. Но почему ковариация более полезна, чем старый добрый полиморфизм? Я написал этот пример, чтобы понять, почему я должен реализовать ...
Этот код теперь компилируется, аргументы типа такие же, как были выше.
ли кто-нибудь предоставить мне простые примеры на C #: конвариантность, контравариантность, инвариантность и противоинвариантность (если такая вещь существует). Все образцы, которые я видел до сих пор, просто бросали какой-то объект вSystem.Object.
@ RenéVogt рад помочь
тим, у нас есть интерфейс как public interface IEnumerable<out T> { /*...*/ }этосо-вариант вT. Затем у нас есть другой интерфейс и класс, реализующий его: public interface ISomeInterface {} public class SomeClass : ISomeInterface {} Теперь ...
, Откат. Спасибо
следующие виды: public interface IMyClass { } public class MyClass : IMyClass { }Интересно, как я могу преобразоватьList<MyClass> кList<IMyClass>? Мне не совсем понятны темы ковариации / контравариантности, но я понимаю, что из-за этого просто ...