.Net 3.5 VS 2008 无效令牌 'out' 错误
.Net 3.5 VS 2008 invalid token 'out' error
我正在尝试为 .Net 3.5 编译 SharpMap,我已经解决了大部分错误,目前我遇到的唯一错误是:
Invalid token 'out' in class, struct, or interface member declaration
Invalid token '>' in class, struct, or interface member declaration
Type expected
错误位于 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,由于我正在处理的项目的具体情况,我无法升级。
协变和逆变泛型类型参数(out
)是 .NET 4.0 和 C# 4 中的新特性,因此您不能使用它。你可以只删除 out
,但其他一些部分可能会拒绝工作:/没有一个简单的解决方法,除了手动转换。
TOid
不是来自任何地方;它是泛型类型参数。相比之下,就是List<T>
中的T
;它是 调用者想要的任何东西。如果调用者引用 ISpatialIndexItem<int>
,那么 TOid
就是 int
.
我正在尝试为 .Net 3.5 编译 SharpMap,我已经解决了大部分错误,目前我遇到的唯一错误是:
Invalid token 'out' in class, struct, or interface member declaration
Invalid token '>' in class, struct, or interface member declaration
Type expected
错误位于 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,由于我正在处理的项目的具体情况,我无法升级。
协变和逆变泛型类型参数(out
)是 .NET 4.0 和 C# 4 中的新特性,因此您不能使用它。你可以只删除 out
,但其他一些部分可能会拒绝工作:/没有一个简单的解决方法,除了手动转换。
TOid
不是来自任何地方;它是泛型类型参数。相比之下,就是List<T>
中的T
;它是 调用者想要的任何东西。如果调用者引用 ISpatialIndexItem<int>
,那么 TOid
就是 int
.