首页 > 解决方案 > .Net 3.5 VS 2008 无效令牌“出”错误

问题描述

我正在尝试为 .Net 3.5 编译SharpMap,我已经对大部分错误进行了排序,目前我得到的唯一错误是:

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

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

预期类型

错误位于此文件的开头(第 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,由于我正在处理的项目的具体情况,我无法升级。

标签: c#.net.net-3.5tokensharpmap

解决方案


协变和逆变泛型类型参数 (the out) 在 .NET 4.0 和 C# 4 中是新的,因此您不能使用它。您可以只删除out,但其他一些部分可能会拒绝工作:/ 除了手动铸造之外,没有简单的解决方法。

TOid不是来自任何地方;它是泛型类型参数。相比之下,它是Tin List<T>; 它是调用者想要的任何东西。如果调用者引用ISpatialIndexItem<int>TOid则为int


推荐阅读