Unity,奇怪的调试

14

我已经添加了必要的using语句。将System.Collections.Generic添加到我的类的顶部,编译器可以很高兴地接受我的List使用,但当我调试时,我遇到了一个非常奇怪的调试问题,即当我展开我的列表时,我得到:

未知类型'System.Collections.Generic.CollectionDebuggerView'1 mscorlib。

可能有什么原因呢?谷歌似乎没有帮助我...

当声明和空置列表时,它们似乎会声明其信息,并且它们与我创建的类一起定义,但我从未在任何其他工具包(如XNA等)中看到过这个问题。

我还应该提到这是通过MonoDevelop发现这个错误。

谢谢。


Unity 标签已被 Microsoft Unity 预留,请使用 unity3d 标签提出您的疑问。 - Lex Li
4
仍然存在于Unity 4.3中... - Danvil
仍然存在于Unity 4.6 :( - Netherwire
3个回答

10
根据这些发布说明,这是Mono中的一个bug。它在2.10.2中得到修复,但Unity没有使用已修补的Mono构建。

679586:在调试器中查看参数化集合时出现未知类型System.Collections.Generic.CollectionDebuggerView错误

Unity使用Mono 2.6。如果没有Unity的源代码,我不确定您如何实现该补丁。即使有源代码,2.10.2仍然是稳定版本,因此可能会在其他地方引起问题。

无论如何,您应该使用mono 2.10.x。mono 2.6.x不稳定,有时会因未知原因崩溃程序。 - linquize
根据它们的发布说明 - Mono 2.10 提供了最新和最优秀的更新,但它们没有接受到足够的测试。寻求绝对稳定性的用户应该保持在 Mono 2.6 上。切换到 Mono 2.10 的用户,应该期望更快的错误修复时间,但也应该计划升级到即将推出的 2.10.xx 系列,因为我们会在我们的软件堆栈中修复错误。我猜这取决于补丁是否修复了你所面临的问题。 - keyboardP
3
对于正确的信息点赞...但我希望我能对这种情况投反对票。 - Tim Keating
1
问题仍然存在于Unity 4.5中,该版本使用的是Mono 2.10.11。有任何想法吗? - JeanLuc

2

使用.ToArray()方法将我的List<T>转换为T[]数组。只是不要忘记在发布时清除这段代码!


0

对我来说有效的快速而简单的解决方法:

private class CellList : List<Cell> {}

在调试器中它以某种方式正确地显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接