C# .Net 3.5 VS 2008无效令牌';输出';错误

C# .Net 3.5 VS 2008无效令牌';输出';错误,c#,.net,.net-3.5,token,sharpmap,C#,.net,.net 3.5,Token,Sharpmap,我正在尝试为.Net 3.5进行编译,我已对大多数错误进行了排序,目前唯一的错误是: 类、结构或接口成员声明中的标记“out”无效 类、结构或接口成员声明中的标记'>'无效 预期类型 错误位于的开头(第36行)。这是代码(第一行中的错误) 公共接口ISPatilindexitem { /// ///获取对象的标识符 /// TOid ID{get;} /// ///获取对象的空间范围 /// 信封盒{get;} } 此外,我无法找出什么是TOid以及它来自哪个库。 我正在使用VS 20

我正在尝试为.Net 3.5进行编译,我已对大多数错误进行了排序,目前唯一的错误是:

类、结构或接口成员声明中的标记“out”无效

类、结构或接口成员声明中的标记'>'无效

预期类型

错误位于的开头(第36行)。这是代码(第一行中的错误)

公共接口ISPatilindexitem
{
/// 
///获取对象的标识符
/// 
TOid ID{get;}
/// 
///获取对象的空间范围
/// 
信封盒{get;}
}
此外,我无法找出什么是TOid以及它来自哪个库。
我正在使用VS 2008.Net 3.5,由于我正在处理的项目的具体情况,我无法升级。

协变和逆变泛型类型参数(out)在.Net 4.0和C#4中是新的,因此您不能使用它。您可以直接将
移出
,但其他一些部件可能会拒绝工作:/除了手动铸造之外,没有一个简单的修复方法

TOid
不是来自任何地方;它是泛型类型参数。相比之下,它是
列表中的
T
;这是来电者想要的。如果调用方引用了
ispatialdexitem
,则
TOid
int

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; }
}