Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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
为什么可以';Visual Studio 2010 C#Express格式嵌套代码是否正确?_C#_Visual Studio_Formatting_Format_Code Formatting - Fatal编程技术网

为什么可以';Visual Studio 2010 C#Express格式嵌套代码是否正确?

为什么可以';Visual Studio 2010 C#Express格式嵌套代码是否正确?,c#,visual-studio,formatting,format,code-formatting,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

考虑一下这个代码

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);
请注意,“outer”代码中的参数逗号已正确格式化为空格(根据我的首选项),额外的空格已从Class1数组定义中删除(同样,我的首选项)。但是,“内部”代码中的参数逗号格式不正确,额外的空格保留在Class2调用中

这段代码绝对没有错——它编译和运行时没有错误

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

为什么VisualStudio2010C#Express不能正确格式化这样的嵌套代码? 还有其他人经历过吗? 如有必要,我可以提供格式首选项。
提前感谢!:)

@tvwxyz:我可以用Ctrl+K,D复制这个问题

但是,有趣的是,如果我启用“自动格式化}上已完成的块”,当我关闭函数时,它可以正常工作(达到预期效果)

工具->选项->文本编辑器->C#->格式->常规-> 在}上自动格式化已完成的块


也不适合我(VS 2010 Pro)。如果你有
new Class1[]{new Class1(a,b,c),new Class1(a,b,c)}
在同一行中,它是有效的。我有点想在VS2012中尝试,你可以说我懒惰,但是你能添加你的类和函数定义吗,这样我就可以粘贴它,看看它是如何格式化的?老实说,我看不出你试图解决的问题。看看格式化文档前后的空格。如有必要,将代码复制并粘贴到记事本中,以查看差异。@Gray——为了回答问题,这些只是泛型类和方法。(我不想发布我真正的代码,但它的结构基本相同。)下面是Class1的定义;Class2和Create是相似的。类Class1{inta,B,C;public Class1(inta,intb,intc){A=A;B=B;C=C;}}(抱歉--注释编辑器在同一行上运行)