在以前版本的Visual Studio中,我可以在C#中创建一个单行自动启动器,如下所示:
public int Whatever { get; set; }
如果我按Control-K,Control-D进行格式化,属性就会保持这种状态。
但是在Visual Studio 2015 RC中,当我键入属性时,它会换行,即使我打开它,格式化也会再次包装它:
public int Whatever
{ get; set; }
我也注意到了构造函数。过去,空构造函数(例如,刚刚调用的基类构造函数)可能如下所示:
public Whatever(int stuff)
: base(stuff) { }
现在Visual Studio 2015坚持这样做:
public Whatever(int stuff)
: base(stuff)
{ }
让其他人注意到这一点吗?这是Visual Studio 2015中的更改吗?如果是这样,有没有办法可以改回来?我查看了Tools>的C#格式化部分。选项,但无法找到任何可能影响此设置的新设置。
(我的加载项之一导致它并非不可能,但我没有发现任何明显的罪魁祸首。)
(为什么甚至关心?因为当我使用Collapse to Definitions概述命令时,单行属性和构造函数保持不变,而包裹的属性崩溃。如果它们崩溃了,我可以&#39 ;一目了然地告诉他们他们已经空了;我必须将他们切换到未收集状态,只是为了看到那里什么都没有。)
答案 0 :(得分:38)
转到工具>选项>文本编辑器> C#>格式化>包装
检查"将阻止保留在单行"和#34;将语句和成员声明留在同一行"
答案 1 :(得分:4)
此行为似乎已更改。转到工具>选项菜单,然后导航到文本编辑器> C#>格式化>包装
在以前版本的Visual Studio中,如果你有"在单行上保留块"检查和"将声明和成员声明留在同一行"未经检查,如果你把它们放在那里,空的大括号将保持在同一条线上。
但是在Visual Studio 2015 RC中,如果你有"在单行上保留块"检查和"将声明和成员声明留在同一行"未经检查,空括号被包裹。
您必须检查两个项目以防止大括号换行。但这也有其他后果,例如在同一行留下多个陈述......
int x = 5; int y = 3;
...这就是为什么我之前从未检查过它。