Visual Studio / C#自动格式化。我可以在属性后控制换行符

时间:2009-12-10 13:30:26

标签: c# visual-studio autoformatting

Visual Studio一直这样做:

[DataContract] 
public class MyContract 
{
    [DataMember]
    public bool MyBool { get; set; }
    [DataMember]
    public string MyString { get; set; } 
}

我想这样:

[DataContract] 
public class MyContract 
{
    [DataMember] public bool MyBool { get; set; }
    [DataMember] public string MyString { get; set; } 
}

如果'公共类MyContract'与[DataContract]位于同一行,那没什么大不了的。

Visual Studio似乎有很多详细的autoformatting选项,但我找不到任何关于属性之后的换行符。我在这里错过了什么吗?或者它是不可用的。

编辑:至少,我想要一个“不要改变我输入的内容”格式化选项,而不是“总是插入”或“总是删除”换行选项。在我输入后,它一直保持格式化,这是非常烦人的。

5 个答案:

答案 0 :(得分:6)

我通常做的是在autoformat跳到我不欣赏的地方时按Ctrl-Z。

即,在结束的荣誉,格式化整个类或方法。输入结束奖励,看它改变你不喜欢的方式,然后点击Ctrl-Z。 (我知道你正在寻找一个实际的选择,我不知道是否存在)。

答案 1 :(得分:1)

不确定它是否适用于属性,但请查看Tools - > Options - > Text Editor - > C# - > Formatting - > Wrapping - > Leave block on single lineLeave statements and member declarations on the same line

答案 2 :(得分:1)

ReSharper可以做到这一点。它有以下选项:

  • 将广告类型属性放在同一行
  • 将方法属性放在同一行
  • 将属性/索引器/事件属性放在同一行(这是您想要的那个)
  • 将字段属性放在同一行

花费几美元,但如果你像我一样迷恋,那值得每一分钱。 ;)

我还将Ctrl+K, Ctrl+D重新映射到ReSharper的静态格式代码,以体验格式化的幸福。

答案 3 :(得分:0)

对我来说最有效的方法是禁用自动格式化;并粘贴。无论如何,我几乎不想在这些时候使用自动格式。这允许您输入属性并移动它们而不会产生令人讨厌的干扰。

  

选项>文本编辑器> C#>格式化>一般

Settings screenshot

答案 4 :(得分:-3)

是的,Ctrl+E, D是你的朋友。您可以在Text editor options

中优化格式