在Visual Studio 2015中C#格式是否发生了变化?我怎样才能改回来?

时间:2015-05-29 03:45:53

标签: c# visual-studio-2015

在以前版本的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 ;一目了然地告诉他们他们已经空了;我必须将他们切换到未收集状态,只是为了看到那里什么都没有。)

2 个答案:

答案 0 :(得分:38)

转到工具>选项>文本编辑器> C#>格式化>包装

检查"将阻止保留在单行"和#34;将语句和成员声明留在同一行"

enter image description here

答案 1 :(得分:4)

此行为似乎已更改。转到工具>选项菜单,然后导航到文本编辑器> C#>格式化>包装

在以前版本的Visual Studio中,如果你有"在单行上保留块"检查和"将声明和成员声明留在同一行"未经检查,如果你把它们放在那里,空的大括号将保持在同一条线上。

但是在Visual Studio 2015 RC中,如果你有"在单行上保留块"检查和"将声明和成员声明留在同一行"未经检查,空括号被包裹。

您必须检查两个项目以防止大括号换行。但这也有其他后果,例如在同一行留下多个陈述......

int x = 5; int y = 3;

...这就是为什么我之前从未检查过它。