Resharper清理代码 - 如何影响方法的排序?

And*_*uul 47 resharper

我有一个定制的清理工作,几乎就是'那里'.

但是,R#似乎想要对成员方法进行排序,但至少它看起来不是按字母顺序排列的.

有没有办法强制排序?

Jam*_*ack 88

使用Resharper确实可以自定义布局.去:

Resharper-> Options-> Languages-> C# - > Formatting Style-> Type Members Layout

ReSharper 2017

Resharper - >选项 - >代码编辑 - > C# - >文件布局 - >接口实现/所有其他成员

并取消选中"使用默认模式"选项.

现在,您需要在"自定义模式"框中编辑xml.我建议将它复制到一个可以正确点亮xml的编辑器(记事本++或visual studio应该可以正常工作).

现在,找到底部附近的部分:

    <!--all other members-->
    <Entry/>
Run Code Online (Sandbox Code Playgroud)

并将其更改为:

    <!--all other members-->
    <Entry>
      <Match>
        <Kind Is="method"/>
      </Match>
      <Sort>
        <Name/>
      </Sort>
    </Entry>
Run Code Online (Sandbox Code Playgroud)

现在,确保您的清理配置文件具有"重新排序类型成员",然后右键单击解决方案资源管理器中的文件名并执行"清理代码...".我自己尝试了这个,它确实按字母顺序排列方法.

如果您还想按访问类型排序,可以在<Sort>元素下添加:

<Access Order="public protected internal private" />
Run Code Online (Sandbox Code Playgroud)

是一篇了解更多信息的文章.

  • 谢谢詹姆斯一个非常好的答案.事实证明,直到我真正意识到对接口实现应用了特殊处理 - 这才是我试图排序的.在我的情况下,所描述的编辑应该在注释<! - interface implementation - >下进行.但是,正如我在问题中所说的那样,你的答案是完全正确的. (3认同)
  • resharper 9.1怎么样? (2认同)
  • 这在R#9中不再准确 (2认同)

Jac*_*wer 23

Resharper->选项 - >语言 - > C# - >文件布局

选择"所有其他成员"并选择"按名称排序"(在图片右下方突出显示)

选项屏幕

  • 似乎ReSharper 9.x已经破坏了这个功能,但一旦修好了,这应该可行. (3认同)
  • 当我用于提高代码质量的工具存在质量控制问题时,这让我感到紧张. (3认同)
  • 是的,看起来他们修好了! (2认同)