Проблема ковариации с универсальной коллекцией в интерфейсеC#

Место общения программистов C#
Anonymous
Проблема ковариации с универсальной коллекцией в интерфейсе

Сообщение Anonymous »

Я немного не понимаю, почему у меня возникает эта ошибка. Поскольку я объявил T как out, разве не следует возвращать его тип?

Код: Выделить всё

public interface IWebFeed where T : BaseItem
{
List getItems();

void loadFeed();
}
Вместо этого я получаю:

Параметр ковариантного типа T' должен быть инвариантно допустимым для Shared. Service.Feed.IWebFeed.getItems()'

РЕДАКТИРОВАТЬ: Итак, как отметил Мбекиш, в его ссылке изменение List для IEnumerable должен решить эту проблему, но когда я следую объявлению для IEnumerable, я получаю следующее:

Код: Выделить всё

using System;

namespace System.Collections.Generic
{
public interface IEnumerable : IEnumerable
{
//
// Methods
//

IEnumerator GetEnumerator();
}
}
Это ошибка в Xamarin или их PCL? Тот факт, что T еще не вышел?

Подробнее здесь: https://stackoverflow.com/questions/147 ... -interface

Вернуться в «C#»