我正在尝试为.Net 3.5编译SharpMap,我已经对大多数错误进行了排序,而我目前遇到的唯一错误是:
类,结构或接口成员声明中的无效令牌'out'
类,结构或接口成员声明中的无效令牌'>'
预期类型
错误位于this file的开头(第36行)。这是代码(第一行错误)。
public interface ISpatialIndexItem<out TOid>
{
/// <summary>
/// Gets the object's identifier
/// </summary>
TOid ID { get; }
/// <summary>
/// Gets the spatial extent of the object
/// </summary>
Envelope Box { get; }
}
此外,我无法找出什么是 TOid 以及它来自什么库。 我正在使用VS 2008 .Net 3.5,由于我正在处理的项目的具体细节,我无法升级。
答案 0 :(得分:3)
.NET 4.0和C#4中新增了协变和反变通用类型参数(out
),因此您不能使用它。您可以只删除out
,但是随后其他一些部分可能会无法正常工作:/除了手动转换之外,没有简单的解决方法。
TOid
并非来自任何地方;它是通用类型参数。相比之下,它是T
中的List<T>
;它是呼叫者希望成为的任何东西。如果呼叫者引用了ISpatialIndexItem<int>
,则TOid
是int
。