gpt4 book ai didi

c# - C# 和 VB 之间的 Visual Studio 2005 中的 Intellisense - 无法导航到定义

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:45 25 4
gpt4 key购买 nike

当您在一个解决方案中组合 C# 和 VB 项目时,MS 无法正确导航到方法的定义,这让我感到非常震惊。如果您尝试从 VB 导航到 C#,它会弹出“对象资源管理器”,如果从 C# 导航到 VB,它会生成一个元数据文件。

老实说,在不同的语言之间切换有什么复杂的,尤其是当它们应该使用相同的 CLR 时?

有谁知道这是为什么,或者是否有任何解决方法?他们在 VS 2008 中做对了吗?


@Keith,恐怕您的回答可能是正确的。我真的很震惊,微软把这件事搞砸了。有人对解决方法有任何想法吗?


@Mladen Mihajlovic - 这正是我所描述的情况。自己试试看;项目引用没有丝毫区别。

最佳答案

这对两种语言都是通用的。

  • VB.Net 中的 F12 总是带你到对象浏览器
  • C# 中的 F12 总是带您到元数据定义

这是一种深思熟虑的机制,用于尝试匹配升级用户的预期行为。 C# 方式为您提供了正确的信息,但 VB 方式是 VBA 或 VB6 用户所期望的。

VS2008 中的行为相同。

这些是外部项目的规则,如果它在同一个解决方案中,两者都应该带你到代码。


您说得很对 - VB 项目将 C# 项目视为外部项目,反之亦然 - 您无法从一个项目的代码导航到另一个项目。我已经在最新的 VS2008 中对此进行了测试,但它仍然是一个问题。

它也无法获取完整的元数据。将方法添加到 C# 代码,在编译 C# 程序集之前,它不会出现在 VB 的智能感知中。

这类似于组件在工具条中的显示方式,因此我认为正常导航到代码功能是具有通用编译器的代码的一个功能,其他一切都使用某种反射。

只要您仍在构建 PDB,它就应该能够找到这些文件,我想这不会,因为他们也需要它来支持发布构建。如果没有 PDB 查找,它无法找到代码行。

关于c# - C# 和 VB 之间的 Visual Studio 2005 中的 Intellisense - 无法导航到定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63517/

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