c# - .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,由于我正在处理的项目的具体情况,我无法升级。
解决方案
协变和逆变泛型类型参数 (the out
) 在 .NET 4.0 和 C# 4 中是新的,因此您不能使用它。您可以只删除out
,但其他一些部分可能会拒绝工作:/ 除了手动铸造之外,没有简单的解决方法。
TOid
不是来自任何地方;它是泛型类型参数。相比之下,它是T
in List<T>
; 它是调用者想要的任何东西。如果调用者引用ISpatialIndexItem<int>
,TOid
则为int
。
推荐阅读
- firebase - 在 Xamarin 中更改推送通知图标 (FCM)
- python - Python中的按键
- sql - 当属性和参数是相同的数据类型时,从字符串转换日期和/或时间时转换失败
- python - 如何使用 pytourch、opengl 在 python 中打开/渲染 .obj 文件
- javascript - 按下按钮后如何延迟删除课程?
- angular12 - Angular 12 kendo-datepicker 禁用过去的日期
- javascript - React 美丽的 Dnd - 不变量失败:找不到带有 id 的可删除条目
- linux - fdisk 是否为创建的分区划分地址空间?
- apache - .httaccess mod_rewrite 首先隐藏 .php 扩展名,然后查询字符串变量
- c++ - clang 格式换行符在错误的位置