New Comparison(Of Pointf)(AddressOf ComparePoints)) 点排序提示类型转换错误是为什么啊
时间: 2024-02-25 20:57:49 浏览: 19
这个错误可能是由于 ComparePoints 方法的签名不匹配 New Comparison(Of Pointf) 方法所需的委托类型导致的。
根据代码中的提示,New Comparison(Of Pointf) 方法需要一个委托类型为 Comparison(Of Pointf) 的参数,而 ComparePoints 方法的签名可能与此不匹配。
请确保 ComparePoints 方法的签名与 Comparison(Of Pointf) 委托类型所需的参数和返回值完全匹配。如果需要,您可以尝试使用 Lambda 表达式来创建一个匹配的委托类型,例如:
```
Dim comparer As Comparison(Of Pointf) = Function(p1, p2) ComparePoints(p1, p2)
```
您可以将此委托传递给 New Comparison(Of Pointf) 方法来解决此错误。
相关问题
我用这个取调用 pointsOfList1.Sort(New Comparison(Of PointF)(AddressOf ComparePoints)) 好像是按Y坐标排列不是X坐标哪里错了吗
根据你提供的 `ComparePoints` 函数,确实是按照 `PointF` 对象的 `X` 坐标进行比较的。可能是在调用 `pointsOfList1.Sort` 函数的时候出现了问题。请确认一下调用 `Sort` 函数时传入的参数是否正确,应该是:
```
pointsOfList1.Sort(AddressOf ComparePoints)
```
另外,请注意 `Sort` 函数会直接修改原始的列表,如果你需要保留原始的列表,请先复制一份再进行排序。
maximum recursion depth exceeded in comparison这个错误是什么意思
这个错误通常发生在 Python 的递归函数中。它表示递归调用次数超过了 Python 解释器所允许的最大深度,因此 Python 解释器停止了递归调用,防止程序崩溃。这个错误可能是由于代码中存在无限递归或递归层数过多导致的。为了避免这个错误,可以考虑使用迭代代替递归,或者增加 Python 解释器的最大递归深度。