如何修复 Resharper 对象初始值设定项缩进作为方法参数

How to fix Resharper object initializer indentation as method argument

Resharper 2016.2

当前格式

IEnumerable<Customer> customers = dbCustomers.Select(customer => new Customer
                                                     {
                                                         Name = customer.Name,
                                                         Address = customer.Address,
                                                         Number = customer.Number
                                                     });

预期格式

IEnumerable<Customer> customers = dbCustomers.Select(customer => new Customer
{
    Name = customer.Name,
    Address = customer.Address,
    Number = customer.Number
});

哪个 Resharper 2016.2 配置可以解决这个问题?

请注意,初始化程序在参数括号内,而不是在变量中。

这对我有用。希望对您有所帮助!

从 Visual Studio 菜单栏转到 Resharper -> 选项。

On the tree view:

代码编辑 -> C# -> 格式化样式 -> 大括号布局

On the right panel:

数组和对象初始化器

  • 展开选项组合框。
  • 选择 At the next Line (BSD style)(第三个选项)。

更新到 2016.3 版本后,R# 设置没有任何变化,它才刚刚开始工作

如果仍然有人需要帮助,试试这个: Resharper 选项 --> 代码编辑 --> C# --> 格式化样式 --> 其他 --> 取消选中 "Array, object and collection initializer".

然后在:Resharper 选项 --> 代码编辑 --> C# --> 格式化样式 --> 大括号布局 --> "Array and object initializer" = "At next line (BSD Style)".

你也可以这样做,这样会更好一点: Resharper 选项 --> 代码编辑 --> C# --> 格式化样式 --> 换行和换行 --> "Wrap object and collection initializer" = "Chop if long or multiline".