Visual Studio 如何阻止Intellisense将“var”更改为“VariableDeclarationList”或其他类似的“Variable”类?

5us2dqdw  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(72)

我对C#和Visual Studio的编码很陌生,所以我真的不知道如何解决这个问题。Intellisense是惊人的,但它似乎也迫使它的纠正对我来说,甚至到了忽略完美匹配的地步。
例如,如果我在所有的目录中键入“var”,Intellisense将打开一个名称中包含“var”的事物列表。而不是从列表中选择“var”的精确匹配,它坚持我想要“VariableDeclarationList”。我不想。我想让“var”保持原样。我知道很多人说我们应该使用C#的完整代码,而不是使用var的简写,但是当我处理对象时,我可以从构造函数中读到这一点。不值得花时间打字。
类似地,当我创建一个名为“service”的变量时,Intellisense坚持我想要“Services”而不是“service”。我不能使用空格或标签来保留“服务”,所以它基本上迫使我使用某种方法来结束Intellisense(我不知道如何),或者接受它,然后手动将其更改回来。什么样的“智能”程序会跳过你刚才创建的变量?我的变量“service”甚至不在Intellisense的可接受选择列表中!
任何帮助或信息将是伟大的。我不明白为什么它忽略了明显的选择(即。那些匹配完全的情况下),并试图走出它的方式给我的建议,给予的方式在那里。
我都不知道从哪开始。再打也没用。我必须删除回开始的资本“V”开始“var”再次,并与“服务”时,它使用“服务”相同。然后,当我按空格键或标签时,它迫使我再次选择相同的东西。我可以手动将“V”改为“v”,然后删除其他所有内容,但这太麻烦了。我可以用“服务”来做同样的事情,但同样,使用一些应该让事情变得更容易的东西会带来很多额外的工作。我不知道什么能改变这一切。我搜索了一些匹配这个问题的东西,在Stack Overflow上没有任何结果。Google也没有帮助。
这是一张正在发生的事情的图片。请注意,我声明了一个变量,就在我工作的位置上方两行。我正在尝试引用我已经指定的变量,并将其分配给另一个变量。但它不想给予我这个选择。按空格键或Tab键或Ctrl键(;)都给予我生成的代码片段。唯一能阻止它的方法是单击离开或使用右箭头转到新行,然后再回来。真痛苦!
Image of Visual Studio 2022 in action

uttx8gqw

uttx8gqw1#

更新:

我检查了你的问题的更新。
你说的情况完全在预料之中。
隐式类型的局部变量
var不能用于类作用域中的字段。
Fields (C# Programming Guide)
字段初始值设定项不能引用其他示例字段。
所以VS intellisense不会给予这种建议,它不符合C#的规则。
如何禁用接受intellisense的空格键:

原始答案:

从你的描述中,“智能感知”看起来像只是将键入的代码更改为类名。
如果问题可以更详细的是更好的,例如,一些截图。
根据你的问题的话,我可以认为一个场景,你的默认VS智能感知性能可能会被其他一些扩展改变。
例如,一个经典的VS扩展Resharper具有功能:
过滤器的持久状态
在这种情况下,如果您通过某种方式过滤智能感知并设置仅过滤类,则默认行为已被覆盖,更改将持续存在。
据我所知,VS intellisense不应该有一个方法来持久化更改过滤结果中的intellisense行为。
如果你确定你这边没有额外的扩展。您可以尝试重置Visual Studio:
/ResetSettings (devenv.exe)
重置所有设置
或修复Visual Studio:
Repair Visual Studio
顺便说一下,你也可以尝试重新打开VS,然后检查问题是否仍然存在(排除临时问题)。或者创建一个新项目(以排除特定的项目问题)。

对于您的情况,屏幕截图会更好,智能感知只提供类选择吗?
如果不只是类,是否先输入var成功,然后再改为类名?

请显示更多细节。
对于Visual Studio和VSCode中的智能感知实现,它们是不同的。
Visual Studio的intellisense与IDE本身紧密集成。它的工具比较旧。
VS Code严重依赖LSP(语言服务器协议),它是不同的和更新的。
IntelliCode只是Visual Studio的增强智能感知。它使用机器学习来提供更智能的代码完成建议。
智能感知可能会导致您的情况,但它只是一个额外的功能.你可以去这个地方禁用它:
工具->选项->智能代码->通用/高级。
您可以禁用intelliCode中的所有设置,它不会使Visual Studio的原始智能感被破坏。

相关问题