如何使用Resharper重新排序类型成员?

Ang*_*ker 47 c# resharper

典型场景:很多人都参与过的课程.我想按字母顺序对方法,属性等进行排序.

我希望能够在该地区或全球范围内这样做.

我在Resharper中看到了这个功能,但它似乎没有做任何事情.

Luc*_*ero 88

使用"清理代码"功能.

可以在语言,C#,类型成员布局中的ReSharper选项中设置成员的顺序.这是一个记录良好的XML布局规范,ReSharper在重新排序成员时使用它.

  • @Kyle,如果你告诉R#重新排序成员并且你的布局规范是正确的,它确实有效.有关详细信息,请参阅R#docs; 某些类型(例如单元测试类和具有顺序布局属性的互操作结构)不会受到影响,因为顺序可能有意义. (10认同)
  • @ manu08,参见[JetBrains帮助主题](http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Usage_Scenarios__Reordering_Type_Members.html) - 你可以添加一个`<Sort> <Name /> </ Sort>`来在重新排序配置XML中按名称排序. (5认同)
  • 为了其他任何人想知道为什么他们的接口实现属性没有重新排序的好处 - 接口实现有一个单独的配置元素,默认情况下没有为我订购. (2认同)

jga*_*fin 53

默认情况下不会激活排序.您可以通过打开resharper选项激活它,然后转到此处:

在此输入图像描述

  • 我不知道.我从不在同一个文件中放置多个类. (6认同)
  • 仅供参考-更改选项后,它仍然不起作用。我必须重新启动VS,然后它才能工作。 (2认同)

Ian*_*ths 45

为了人们的利益,像我一样,通过网络搜索登陆这个问题,但发现问题的细节并不是他们所期望的,你可能想知道你可以在内部移动个人成员通过按住Ctrl-Alt-Shift然后按向上或向下箭头来调整文件.

(显然,这不是按字母顺序在问题正文中要求的自动安排,但这是我希望我会在标题中找到问题的答案.)

  • 我想补充一下你可以点击ctrl + m,ctrl + 0来折叠所有方法.然后,您可以移动上述方法块. (2认同)

Tru*_*ill 5

可以考虑的另一种选择是区域化。我们使用并喜欢 ReSharper,但 Regionerate 适合我们创建区域和排序/重新排列成员的需求。当然,这一切都是可定制的。

更新:我们已开始使用ReSharper 的代码清理来解决此问题。

  • 一般地区都有代码味道。区域隔离并隐藏代码。使用类和方法可以完成同样的事情。 (9认同)
  • 如果您使用区域,通常表明您的类太大,大=类意味着每个类有太多责任 (5认同)
  • @Miau:虽然我相信单一职责原则,但将属性/公共方法/构造函数/私有方法/字段分成自己的区域并按字母顺序排列是很好的。 (2认同)