C# 查看if语句的结果

C# 查看if语句的结果,c#,debugging,if-statement,helper,C#,Debugging,If Statement,Helper,我正在为基于回合的策略游戏创建AI,其想法是有棋牌,这些棋牌可以包含单位 在我的课堂上,我保存了一份敌人单位的列表,并希望根据他们的“威胁等级””对其进行排序 CoveringUnit是已经覆盖敌方单位所在车道的单位(应该是一个列表,但是w.e.),因此如果这个对象有一个CoveringUnit,而其他对象没有,那么其他对象应该有优先权,因为它需要生成一个单位来覆盖那条车道 它不断地给我调试消息,但我无法用Unity调试它 所以我的问题是: 是否有一个工具或在线网站可以帮助我使用if语句来查看我

我正在为基于回合的策略游戏创建AI,其想法是有棋牌,这些棋牌可以包含单位

在我的课堂上,我保存了一份敌人单位的列表,并希望根据他们的“威胁等级””对其进行排序

CoveringUnit是已经覆盖敌方单位所在车道的单位(应该是一个列表,但是w.e.),因此如果这个对象有一个CoveringUnit,而其他对象没有,那么其他对象应该有优先权,因为它需要生成一个单位来覆盖那条车道

它不断地给我调试消息,但我无法用Unity调试它

所以我的问题是:

是否有一个工具或在线网站可以帮助我使用if语句来查看我缺少的内容

提前谢谢

编辑1:paqogomez建议的重新措辞:


CompareTo函数中缺少了什么?

如果没有支持调试的适当IDE,您将不得不完全按照已经开始的方式进行调试

在调试消息中,打印出上面if语句中使用的一些变量,以确定它们的实际值

Debug.Log("CoveringUnit Won: " + lvWinningUnit == this.CoveringUnit)
Debug.Log("Other CoveringUnit Won: " + lvWinningOtherUnit == pOther.CoveringUnit)
您将发现这两个函数都返回false或true,否则您根本不会点击调试消息


我猜你的whowuldwin方法的逻辑中有一个bug。我也不确定您是否应该将一个单元与一个CoveringUnit进行比较,因为我不完全了解您的域。

通过重新安装UnityVS,我使Visual Studio调试再次正常工作

if ((lvWinningUnit == null && lvWinningOtherUnit == null) ||
                lvWinningUnit == this.Unit && lvWinningOtherUnit == pOther.Unit ||
                lvWinningUnit == this.CoveringUnit && lvWinningOtherUnit == pOther.CoveringUnit)
必须添加:| lvWinningUnit==this.CoveringUnit&&lvWinningOtherUnit==pOther.CoveringUnit)


找到它:)

调试消息是什么?此外,对于SO来说,要求提供工具或场外资源是不合适的。请重新表述你的问题,让它更直接地指向如何解决你的困境。@paqogomez就像Grant Winney说的那样,这确实是我代码的第二行。我不介意重新表述我的问题,但那基本上是我要求修复我的CompareTo方法,因为我太密集了,无法自己完成,加上工具或异地资源在将来会很有用。为什么你不能调试它?Mono和VisualStudio都能够调试您的c代码,尽管对于VS,您需要插件()我确实安装了UnityVs,它可以在我的笔记本电脑上运行,但由于某些原因无法在我的家用电脑上运行。我将尝试重新安装,看看这是否有帮助。应用调试原则:在每行代码后都执行Debug.Log,并打印出ifs中使用的对象/值。正如阿拉迪尔的回答。
Debug.Log("CoveringUnit Won: " + lvWinningUnit == this.CoveringUnit)
Debug.Log("Other CoveringUnit Won: " + lvWinningOtherUnit == pOther.CoveringUnit)
if ((lvWinningUnit == null && lvWinningOtherUnit == null) ||
                lvWinningUnit == this.Unit && lvWinningOtherUnit == pOther.Unit ||
                lvWinningUnit == this.CoveringUnit && lvWinningOtherUnit == pOther.CoveringUnit)