当前位置:  开发笔记 > 编程语言 > 正文

Visual Studio调试器不会在文件名中带有"(反引号)"的文件中加载符号.有谁能解释一下?

如何解决《VisualStudio调试器不会在文件名中带有"(反引号)"的文件中加载符号.有谁能解释一下?》经验,为你挑选了1个好方法。

我在Visual Studio 2005中调试了一些代码,当时我注意到IDE没有在特定的泛型类中遇到断点.我可以手动进入该类,但悬停在引用上时显示的工具提示只包含内存地址而不是普通的友好工具提示.

事实证明,问题是由文件名(!)引起的.具体来说,当文件名包含`(反引号,反引号)时,调试器将不会加载该文件的符号.解决方法是重命名该文件.

我首先使用反引号来表示泛型类型的基数:

Foo.cs包含非泛型类型(例如Foo)

Foo`1.cs包含一个带有单个类型参数的泛型类型(例如Foo )

Foo`2.cs包含一个带有两个类型参数的泛型(例如Foo )

这个错误(是吗?)也发生在Visual Studio 2008中.

谁能解释这种行为?



1> OJ...:

我的印象是,在幕后,泛型类型被编译成在其名称中具有反引号的类型.说你有,List并且List在幕后你有两节课.一个会是System.Collections.Generic.List'1另一个System.Collections.Generic.List'2.可以生成这些类并将其存储在同名文件中(扩展名为.cs).

我猜你如果你在你的文件名中添加反引号,你就会搞乱这种机制.

我在这里猜测一下,因为我没有研究它,但它可能是你研究的东西?:)

祝好运

编辑 - 不得不使用撇号而不是反引号,因为它们是这个编辑器中的保留符号:)

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有