Visual Studio 2019 IntelliSense 已更改(如何获取先前的行为?)

Visual Studio 2019 IntelliSense changed (how to get prior behavior?)

自从我切换到 VS 2019(从 2017 年开始)以来,我很确定我的 IntelliSense 体验有所下降。我在“工具”->“选项”下查找设置...但没有找到任何有用的信息。

问题是这样的:假设我有一个变量 kvp,它有一个 属性 键,我可以键入 "key.",滚动到 "Key" 属性(如果这还没有 selected),然后输入“;”完成声明。

但这不再有效了。相反,它现在忽略了我 selected 和我得到的

键.;

获得 selected 属性 的唯一方法是明确地按回车键。当我将第一个字符键入 select 所需的选项时也是如此:当按下 ; 时它只留下我已经输入的内容并添加;紧随其后,忽略我在弹出菜单中 select 编辑的内容。

发生了什么事以及如何恢复正确的行为?

我使用的是预览版,但我已经进行了几次更新,但它没有改进,所以我猜这是设计或默认行为造成的。

这是我为 Perry 编写的一些代码。这只是一个例子,问题(或者我认为是问题的)发生在任何对象变量上。

private static void AddBlockNodes(TreeNode node, IDictionary<string, Block> blocks)
{
    foreach (KeyValuePair<string, Block> kvp in blocks)
    {
        string name = kvp.Key;
        Block block = kvp.Value;

        TreeNode childNode = new TreeNode(name);
        childNode.Tag = block;

        node.Nodes.Add(childNode);
        AddBlockNodes(childNode, block.Subblocks);
    }
}

it just leaves what I already typed and adds the ; immediately behind it, ignoring what I selected in the popup menu.What happened and how do I get the proper behavior back?

这是一个非常不正常的行为,我已经安装了 Visual Studio 16.6.0 Preview 2.1 并在我这边测试了你的代码,它运行良好。

键入变量 kvp.,然后键入 select 属性 Key 并按预期键入。过程中我没有遇到失踪属性Key

您可以尝试这些步骤来解决您的问题:

建议

1) 通过 Tools-->Import and Export Settings-->Reset all settings

重置所有设置

2)关闭VS Instance,进入项目路径,删除.vs存储一些Intellisense设置的隐藏文件夹,binobj 文件夹,然后再次重新启动您的项目。不知你是否将旧项目迁移到VS2019预览版,我认为你应该完成这一步。

3) 如果您在“扩展”-->“管理扩展”下禁用任何第三方扩展,以防它们导致此行为。

4)删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio.0_xxx(16.0 is VS2019)\ComponentModelCache

下的所有组件缓存

5)尝试在VS2019预览版中新建一个工程,测试新平台是否存在此问题,如果有效,我认为是你的问题项目本身。或者您可以尝试将您的项目迁移到新项目中。

希望对您有所帮助。