当方法的参数列表增长到它们不适合在一行上时,我喜欢格式化代码,使得每个参数都在一个单独的行上(遵循StyleCop建议),如下所示:
public void MyMethod(
int someArgument,
double someOtherArgument,
int someMoreArguments)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是这种格式是"脆弱的",并且在使用Ctrl + K + D时不会自动重新格式化.例如,如果我碰巧在其中一个参数前面插入一些空格,它就不会被删除,我最终会做一些繁琐的手动重新格式化.如果我复制一个方法(比如,提供一个重载的签名),副本中的参数缩进变得非常混乱.
我在LINQ语句中遇到了类似的问题,我也喜欢在多行格式化,例如:
myEnumerable.
.Where(this and that)
.Where(this and that)
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我意识到这是完整的强迫性格式化,并且是一个非常小的问题,但有没有办法让Visual Studio 2010在错位时自动重新缩进该模式后面的多行参数?