Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2019 IntelliSense已更改(如何获取以前的行为?)_C#_Visual Studio_Intellisense - Fatal编程技术网

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

C# Visual Studio 2019 IntelliSense已更改(如何获取以前的行为?),c#,visual-studio,intellisense,C#,Visual Studio,Intellisense,自从我切换到VS2019(从2017年开始),我很确定我获得了一次降级的IntelliSense体验。我在工具->选项下查找设置。。。但是没有发现任何有用的东西 问题是:假设我有一个具有属性键的变量kvp,我可以键入“Key.”,滚动到“Key”属性(如果尚未选中),然后键入“;”以完成该语句 但这已经不起作用了。相反,它现在忽略了我选择的内容,我得到了 钥匙 获取选定属性的唯一方法是显式单击enter键。键入第一个字符以选择所需选项时相同:按时;它只留下我已经键入的内容并添加;就在它后面,忽略

自从我切换到VS2019(从2017年开始),我很确定我获得了一次降级的IntelliSense体验。我在工具->选项下查找设置。。。但是没有发现任何有用的东西

问题是:假设我有一个具有属性键的变量kvp,我可以键入“Key.”,滚动到“Key”属性(如果尚未选中),然后键入“;”以完成该语句

但这已经不起作用了。相反,它现在忽略了我选择的内容,我得到了

钥匙

获取选定属性的唯一方法是显式单击enter键。键入第一个字符以选择所需选项时相同:按时;它只留下我已经键入的内容并添加;就在它后面,忽略我在弹出菜单中选择的内容

发生了什么事?我如何恢复正常的行为

我使用的是预览版,但我已经有了一些更新,而且没有改进,所以我猜这是出于设计或默认行为

这是我给佩里的一些密码。这只是一个例子,问题(或者我认为是问题)发生在任何对象变量上

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);
    }
}
private static void AddBlockNodes(树节点、IDictionary块)
{
foreach(块中的KeyValuePair kvp)
{
字符串名称=kvp.Key;
块=kvp.值;
TreeNode childNode=新的TreeNode(名称);
Tag=block;
node.Nodes.Add(childNode);
AddBlockNodes(子节点、块、子块);
}
}
它只留下我已经键入的内容并添加;紧随其后 它忽略了我在弹出菜单中选择的内容。发生了什么以及如何发生的 我能恢复正常的行为吗

这是一个非常不正常的行为,我已经安装了VisualStudio16.6.0 Preview 2.1,并在我这边测试了你的代码,效果很好

键入变量
kvp.
,然后选择属性
,然后按预期键入。在此过程中,我没有遇到缺少属性
键的情况

您可以尝试以下步骤来解决问题:

建议

1)使用
工具重置所有设置
-->
导入和导出设置
-->
重置所有设置

2)关闭VS实例,输入项目路径并删除
.VS
隐藏文件夹,该文件夹存储一些Intellisense设置,
bin
obj
文件夹,然后重新启动项目。我想知道您是否将旧项目迁移到VS2019预览版本,我认为您应该完成这一步

3)禁用任何第三方扩展,如果您的扩展-->管理扩展导致此行为,请禁用它们

4)删除
C:\Users\xxx\AppData\Local\Microsoft\VisualStudio\16.0\u xxx(16.0是VS2019)\ComponentModelCache下的所有组件缓存

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


希望它能帮助您。

CS world中有一条通用规则-尝试卸载和安装:)您能与我们共享一个最小的可复制样本吗?@Perry我在问题中描述了这个问题。你还想看什么?顺便说一句,我使用的是16.6.0版本预览版2.1(社区预览版)。@Perry我添加了代码,但我不知道这会使它变得更清晰。块是自定义类,但不需要它来复制行为。请检查以下答案:。这与VS 2017中的问题有关,但您可能能够适应VS 2019,并查看它是否有帮助(缺少重新安装)。我的项目已迁移(从2017年开始),但我创建了一个新项目,它也有相同的问题。建议1和建议2没有区别。然后我禁用了所有扩展,包括“VisualStudioIntelliCode”。我发现在此之后,我再也没有任何形式的自动完成。我重新启用了这个“VisualStudioIntelliCode”扩展,恢复了IntelliSense,发现它的行为正常!还是有点不同。我不知道为什么我在某一点上完全失去了智能感知,但这里是我可以复制的。如果禁用扩展名“VisualStudioIntelliCode”(版本2.2.554.756)并重新启动VS,IntelliSense工作正常。如果我重新启用扩展并重新启动VS,它会再次崩溃。我从未有意识地安装过这个扩展,我认为它是预安装的。但是,我可能又做了,然后忘记了。