gpt4 book ai didi

c# - Visual Studio 调试器不会加载文件名中带有 `(反引号)的文件中的符号。谁能解释一下?

转载 作者:太空狗 更新时间:2023-10-30 01:12:25 25 4
gpt4 key购买 nike

我正在调试 Visual Studio 2005 中的一些代码,这时我注意到 IDE 没有在特定的通用类中遇到断点。我可以手动进入类(class),但是将鼠标悬停在引用上时显示的工具提示仅包含内存地址,而不是正常的友好工具提示。

原来问题出在文件名(!)上。具体来说,当文件名包含`(反引号、反引号)时,调试器将不会加载该文件的符号。解决方法是重命名该文件。

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

  • Foo.cs 包含非泛型类型(例如 Foo)
  • Foo`1.cs 包含具有单个类型参数的泛型类型(例如 Foo )
  • Foo`2.cs 包含一个具有两个类型参数的泛型(例如 Foo )

此错误(是吗?)也出现在 Visual Studio 2008 中。

谁能解释这种行为?

最佳答案

我的印象是,在幕后,泛型类型被编译成名称中带有反引号的类型。假设你有 List<int>List<string> ,在幕后你有两个类(class)。一个是 System.Collections.Generic.List'1和另一个System.Collections.Generic.List'2 .这些类可能会生成并存储在同名文件中(扩展名为 .cs)。

我猜如果你在你的文件名中加上反引号,你会搞乱这个机制。

由于我还没有研究过,所以我在这里有点推测,但它可能是您要研究的东西? :)

祝你好运

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

关于c# - Visual Studio 调试器不会加载文件名中带有 `(反引号)的文件中的符号。谁能解释一下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/505447/

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