1

在编程时,我经常意识到我需要在已经输入的代码之前添加一些东西。例如,我输入变量的名称:

input[0]

然后我意识到我的数组是字符串类型,我需要转换它。所以,我移动到单词的开头(使用 Ctrl-左箭头)并开始输入

Convert.To|input[0]

用管道显示我的光标的位置。我从 Intellisense 获得了一些建议,包括我正在寻找的 ToInt32() 方法。但只要我用 Tab 或 Space 确认这个建议,我就会得到以下信息:

Convert.ToInt32(|)[0]

所以,从光标位置到词尾的文本被替换为建议,这绝对不是我想要的。

这个问题不是 VS 2012 特有的,可能是由于我安装了一些扩展,但我试图追查它的起源并没有产生任何结果。我安装了以下扩展:ReSharper、PowerCommands、Productivity Power Tools。

4

2 回答 2

1

如果您在标识符之前输入不相关的表达式,请在开始输入新表达式之前添加一个空格。这将防止完成替换现有标识符。

例如,如果|标记插入符号,则以下方案将避免您面临的问题。

Convert.To| input

此代码完成功能旨在防止插入不正确的标识符。如果 Visual Studio 的行为与我所知道的其他一些 IDE 一样,则在原始示例中使用代码完成功能将导致插入ToInt32input,这将永远无效。

如果您对有关此功能的其他想法感兴趣,我在我的博客文章代码完成过滤,选择中将其描述为扩展(Visual Studio 的默认值)和不扩展(NetBeans、Eclipse 等的默认值)模式和替换算法

于 2013-04-01T15:34:43.170 回答
0

两年后的答案。但它可能对某些人仍然有用。

在 VS2015(也可能在 VS2012 中工作)对我有帮助的是将空格字符添加到 Intellisense 设置中的“成员列表提交字符”列表中。

在此之后,光标后的字符不会被自动完成删除。

于 2015-08-04T14:04:34.930 回答