gpt4 book ai didi

c# - 这个自定义比较功能有什么问题

转载 作者:行者123 更新时间:2023-11-30 17:23:55 26 4
gpt4 key购买 nike

我试图调试一个问题并遇到了这个问题。也许有人可以向我解释。这是有问题的代码

public int Compare(CustomClass rt1, CustomClass rt2)
{
if (rt1 == null & rt2 == null)
return 0;
if (rt1 == null)
return -1;
if (rt2 == null)
return 1;
if (rt1.yPos < rt2.yPos)
return -1;
if (rt1.yPos == rt2.yPos)
{
if (rt1.xPos < rt2.xPos)
return -1;
if (rt1.xPos == rt2.xPos)
return 0;
}
return 1;
}

我得到的错误是:当 Array.Sort 调用 x 时,IComparer(或其依赖的 IComparable 方法)没有返回零。比较(x)。

为了让它更有趣,如果我在 Debug模式下从 VS 运行它,则不会发生错误。仅当我将其置于 Release模式并点击“不调试启动”时。任何人都知道为什么会发生这种情况?我通过添加“if(rt1 == rt2) return 0;”解决了这个问题。行到函数的开头,但真的很想知道发生了什么。

额外信息:是的,这实现了 IComparer 类

最佳答案

你少了一个符号 (&)(这是错字吗?)

if (rt1 == null & rt2 == null) // oops!
if (rt1 == null && rt2 == null) // like this....

关于c# - 这个自定义比较功能有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596736/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com