.NET 3.5 VS 2008无效令牌'出'错误

时间:2018-06-29 00:14:10

标签: c# .net .net-3.5 token sharpmap

我正在尝试为.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,由于我正在处理的项目的具体细节,我无法升级。

1 个答案:

答案 0 :(得分:3)

.NET 4.0和C#4中新增了协变和反变通用类型参数(out),因此您不能使用它。您可以只删除out,但是随后其他一些部分可能会无法正常工作:/除了手动转换之外,没有简单的解决方法。

TOid并非来自任何地方;它是通用类型参数。相比之下,它是T中的List<T>;它是呼叫者希望成为的任何东西。如果呼叫者引用了ISpatialIndexItem<int>,则TOidint