2

在 Visual Studio 2008 的 Options > Text Editor > C# > Formatting 中,我勾选了以下设置。

  • 自动格式化完成的语句;

  • 在 } 上自动格式化完成的块

这在我编写方法或 for/foreach/while/if 语句时非常有用。

即如果我写

void MyMethod(){}

我希望它在我输入最后一个 } 时将其重新格式化为以下格式

void MyMethod()
{
}

但是,当我写:

bool MyProperty { get; set; }

我希望它保持这种状态,而不是改为:

bool MyProperty 
{ 
    get; 
    set; 
}

无论如何,我能做到这一点还是我在做梦?我能想到的唯一方法是关闭这两个设置……但这只会导致烦恼转移到我编写方法和 if 语句等时。

更新:只是想我会提到我使用 Resharper ......所以如果有办法通过那里完成它,我也会有兴趣知道这一点。

4

3 回答 3

3

你确定这是VS2008的问题吗?因为我的汽车属性保持不变...

给...

bool MyProperty { get; set; }

它保持为...

bool MyProperty { get; set; }

即使在我应用格式选择命令之后。

注意:我选择了与您相同的 VS 格式选项。虽然我使用的是 VS2008 SP1。

于 2009-02-12T07:39:55.723 回答
2

惊人的!我设法弄清楚了。多亏了Anton,我仔细查看了 Resharper 中可用的设置,我能够弄清楚一些事情。

我的解决方案涉及 Resharper 和 VS2008 中的设置组合。

在 VS2008 中,我关闭 Automatically format completed statement on ;

然后我在 Resharper 中打开 IntelliSense Completion Behavior 的设置以在完成后自动插入括号。

这允许我输入:

bool MyProperty {

要得到:

bool MyProperty {}

然后允许我添加获取;并设置;没有它们格式化的行...

于 2009-02-12T07:44:39.143 回答
1

ReSharper 可能有这样的功能,但我不确定。

于 2009-02-12T07:30:45.557 回答