c# - IComparer 未实现接口成员 - 错误 CS0738
问题描述
我正在尝试使用以下代码通过它们的一个属性(.Transaction.topLeftX,一个整数)对两个对象进行排序,以创建一个要在 Sort 方法中使用的比较器:
public class RespComp : IComparer<Kairos.Net.RecognizeImage>
{
public Kairos.Net.RecognizeImage Compare(Kairos.Net.RecognizeImage x, Kairos.Net.RecognizeImage y)
{
if (x.Transaction.topLeftX.CompareTo(y.Transaction.topLeftX) <= 0) return x;
else return y;
}
}
但是,我收到错误消息错误 CS0738 'RecogniseFacesKairos.RespComp' 没有实现接口成员 'IComparer.Compare(RecognizeImage, RecognizeImage)'。“RecogniseFacesKairos.RespComp.Compare(RecognizeImage, RecognizeImage)”无法实现“IComparer.Compare(RecognizeImage, RecognizeImage)”,因为它没有匹配的返回类型“int”。
Sort 方法中使用的比较器是否需要返回类型为 int?
解决方案
该IComparer<T>
接口应该实现一个返回int
比较的方法。-1
小于、0
等于和1
大于。
查看您的代码,如果您只是比较左上角,您可能只需执行以下操作:
public int Compare(FooImage x, FooImage y) {
return x.Transaction.topLeftX.CompareTo(y.Transaction.topLeftX);
}
推荐阅读
- nestjs - 如何检查模块中存在的服务?
- c# - 为什么声明为实例字段的 lambda 委托只能访问静态成员?
- html - 如何使我的个人资料图像在横向移动响应?
- c# - 如何获取 ComboBox 的值?
- kotlin - 我们如何在 Kotlin 的列表中删除类似的项目?
- python - 如何在树莓派4中安装pytorch和torchvision?
- hapi-fhir - 启用验证请求时无法上传结构定义 (DSTU3)
- sql - 如何使用 group by 条件简化 WHERE 子句
- python - 如何将默认值添加到变量并存储在 django 的数据库中?
- javascript - 单击另一个时保持手风琴项打开