Resharper中的奇怪重组代码

时间:2010-09-15 18:28:26

标签: c# wpf resharper

我正在使用ReSharper 5的“重新格式代码”功能,使用默认设置并将其转换为:

        _deviceInstanceView.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
        {
                  _deviceInstanceView._DeviceInstanceContainer.UpdateLayout();
        });

进入这个:

         _deviceInstanceView.Dispatcher.Invoke(DispatcherPriority.Normal,
                                              (ThreadStart)
                                              delegate() { _deviceInstanceView._DeviceInstanceContainer.UpdateLayout(); });

有没有办法可以禁用此格式化?

2 个答案:

答案 0 :(得分:2)

ReSharper>选项>语言> C#>格式化样式>大括号布局>匿名方法声明>在下一行(BSD风格)

至于将第二个参数移动到下一行,这可能是因为你有 “包装形式参数”设置为“Chop always”或“Chop if long”,但更可能仅仅因为“Wrap long lines”。

这两个都在ReSharper>下。选项>语言> C#>换行和换行>换行

答案 1 :(得分:0)

使用Languages / C#/ Formatting Style / Line Breaks&下的选项。裹。您可以告诉它不要尝试重新换行,或者改变它将换行的条件,以及它将放置断点的位置。

这是纯粹的个人偏好,但我会告诉它更喜欢在点之前或之后(您的选择)和逗号之后换行,并给出花括号自己的行。你最终会得到类似的东西:

_deviceInstanceView.Dispatcher
   .Invoke(DispatcherPriority.Normal, (ThreadStart)delegate()
         {
            _deviceInstanceView._DeviceInstanceContainer
               .UpdateLayout();
         }
   );