我有点困惑为什么我在这里遇到这个错误。既然我声明T
了 as out
,返回它的类型不应该是可以的吗?
public interface IWebFeed<out T> where T : BaseItem
{
List<T> getItems();
void loadFeed();
}
相反,我得到:
协变类型参数
T' must be invariantly valid on
Shared.Service.Feed.IWebFeed.getItems()'
编辑:所以,正如 mbeckish 指出的那样,在他的链接中,更改List<T>
toIEnumberable<T>
应该可以解决这个问题,但是当我遵循 的声明时IEnumerable
,我得到以下信息:
using System;
namespace System.Collections.Generic
{
public interface IEnumerable<T> : IEnumerable
{
//
// Methods
//
IEnumerator<T> GetEnumerator();
}
}
这是 Xamarin 或他们的 PCL 中的错误吗?事实T
并非如此out
?