C# Visual Studio在if语句后添加空格
有时(但不总是!?)当我用分号粘贴或结束一行时,Visual Studio会在C# Visual Studio在if语句后添加空格,c#,visual-studio-2008,formatting,resharper,C#,Visual Studio 2008,Formatting,Resharper,有时(但不总是!?)当我用分号粘贴或结束一行时,Visual Studio会在if语句后添加空格!例如,粘贴时 if() 将变成这样: if (condition) if (condition) DoSomething(); 而且,当完成一行时 if(condition) DoSomething() 将变成这样: if (condition) if (condition) DoSomething(); 不得不不断地删除这个空间(有时两次!)简直让我发疯!这似乎
if
语句后添加空格!例如,粘贴时
if()
将变成这样:
if (condition)
if (condition)
DoSomething();
而且,当完成一行时
if(condition)
DoSomething()
将变成这样:
if (condition)
if (condition)
DoSomething();
不得不不断地删除这个空间(有时两次!)简直让我发疯!这似乎发生在if
和while
时,而不是for
时
我在VS选项中找不到与此相关的任何内容。我确实安装了Resharper,但它设置为不会自动添加空间:
为什么Visual Studio会惩罚我?禁用您认为合适的自动格式化功能 工具->选项->文本 编辑器->C#->格式->常规 默认情况下,我的C#Express 2010配置中会选中所有选项:
- 自动格式化已完成的报表李>
- 在}上自动格式化已完成的块
- 粘贴时自动格式化
我怀疑你会发现你已经检查过了,你不想这样。(我特意检查过:)另一个好方法是保持编码不变,然后按CTRL+K+D,它将自动格式化代码并修复空格Visual Studio的行为在这里似乎有点不一致。我在这里测试了所有选项中选中的“自动格式化”设置,如下图所示: 我使用了以下代码:
if(true)
{
int m = 3;
}
如果我将上述代码复制/粘贴到Visual Studio中,Visual Studio将自动应用格式设置,从而在If
之后产生一个空格
如果我手动键入代码,Visual Studio将不会在If
之后自动添加空格,即使我用右括号完成了If行,甚至用右括号完成了If块
正如在另一个答案中提到的,如果我使用CTRL+K+D来格式化整个文档,VisualStudio会在if之后插入一个空格
这有点令人沮丧,因为如果我手动编写代码,我在if之后就没有空间了(出于习惯),但是如果我粘贴代码或格式化文档,我确实会有空间。你的格式化首选项对我来说很奇怪,但是对于“为什么Visual Studio会惩罚我?”我听说“if()”是公认的C标准的一部分,这很奇怪。有人可以验证吗?如果设置不正确,它会弄乱空格。粘贴后,您可以始终使用ctl-z来删除应用的格式。