c# - 为什么 Visual Studio 2010 C# Express 不能正确格式化嵌套代码?

标签 c# visual-studio formatting format code-formatting

考虑这段代码...

Create(x,y,z,
null, null, null,
new Class1[     ] {
    new Class1(a,b,c),
    new Class1(a,b,c)
},
new Class2[] {
    new Class2(d,e,f    )
},
true);

注意参数逗号后没有空格,Class1 数组定义和 Class2 调用中有多余的空格。

如果我格式化我的文档——Ctrl+E、D 或 Ctrl+K、D——代码被格式化为这样...

Create(x, y, z,
null, null, null,
new Class1[] {
    new Class1(a,b,c),
    new Class1(a,b,c)
},
new Class2[] {
    new Class2(d,e,f    )
},
true);

请注意,“外部”代码中的参数逗号已使用空格正确格式化(根据我的喜好),并且额外的空格已从 Class1 数组定义中删除(同样,我的喜好)。但是,“内部”代码中的参数逗号格式不正确,额外的空格保留在 Class2 调用中。

代码绝对没有问题——它编译和运行没有错误。

每次我使用大括号创建嵌套的复杂调用时都会发生这种情况。我想我可以通过将代码全部分解并使用临时变量来使我的代码更长更复杂,但这似乎有点过分了。

为什么 Visual Studio 2010 C# Express 无法正确格式化此类嵌套代码? 还有其他人经历过吗? 如有必要,我可以提供我的格式首选项。 提前致谢! :)

最佳答案

@tvwxyz:我可以用 Ctrl+K、D 重现这个问题。

但是,有趣的是,如果我启用“在 } 上自动格式化已完成的 block ”,当我关闭该函数时它可以正常工作(按预期进行)。

Tools -> Options -> Text Editor-> C#-> Formatting -> General -> Automatically format completed block on }

关于c# - 为什么 Visual Studio 2010 C# Express 不能正确格式化嵌套代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14630368/

相关文章:

java - 替换前导零

c# - 用指数计算公式

c# - 使用 IIS6 将 C# Web 应用程序添加到网站

c# - SQL 服务器 CLR : how to call WCF Service In CLR SQL stored procedure in database project

visual-studio - 用于android错误的多个visual studio模拟器

Java:以百万为单位的格式数字

c# - ObservableCollection.CollectionChanged 未触发

c++ - 加载 Win32 资源文件作为 wstringstream

c# - 如何将 ListItemCollection 转换为 ListItem[]?

python - 在 Python3 中打印格式化的浮点列表