如何在Visual Studio 2008中对代码进行排序(按方法名称)?

时间:2008-10-01 21:32:38

标签: visual-studio

没有剪切和粘贴,有没有办法在Visual Studio 2008中对我的类中的方法进行排序?我喜欢有序的代码。

5 个答案:

答案 0 :(得分:10)

这是一个免费的插件,可以满足您的要求:http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionID=800978aa-2aac-4440-8bdf-6d1a76a5c23c

更新

不幸的是,该链接已过时。您可以在http://www.rauchy.net/regionerate/docs/2007/05/download.html

下载Regionerate

答案 1 :(得分:4)

如果您使用的是Resharper,则可以更改“类型成员布局”模板,以便您根据需要订购代码。请参阅Resharper>选项>语言> C#>类型成员布局。 alt text http://www.jetbrains.com/resharper/features/screenshots/40/automatic_member_layout_full.png

例如,您可以将具有特定属性的方法放在您的文件中...例如标有NUnit的[Setup]和[TearDown]标记的方法可以在标记为[Test]的方法之前放置一个块,如:

<!--Fixture Setup/Teardown-->
<Entry>
  <Match>
    <And>
      <Kind Is="method"/>
      <Or>
        <HasAttribute CLRName="NUnit.Framework.TestFixtureSetUpAttribute" Inherit="true"/>
        <HasAttribute CLRName="NUnit.Framework.TestFixtureTearDownAttribute" Inherit="true"/>
      </Or>
    </And>
  </Match>
 </Entry>

之前:

<!--Test methods-->
<Entry>
  <Match>
    <And Weight="100">
      <Kind Is="method"/>
      <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
    </And>
  </Match>
  <Sort>
    <Name/>
  </Sort>
</Entry>

然后为其他一切做好准备:

<!--All other members-->
<Entry>
  <Sort>
    <Name/>
  </Sort>
</Entry>

模板系统非常强大,可以满足您的需求。

答案 2 :(得分:1)

您可能会发现或能够创建一个宏来执行此操作,但VS没有内置的功能来对您的方法进行排序。某些第三方生产力工具(如ResharperCodeRush)提供了一些重新排序代码的功能。

答案 3 :(得分:1)

ReSharper具有Code Reordering功能和File Structure视图,可让您执行拖放重新排序。

答案 4 :(得分:0)

Resharper将以有限的方式做得很好。这取决于你想要多少。例如,它不会根据生命周期或类似的东西对asp.net页面中的覆盖进行重新排序,但它会保留属性,字段,方法以及未明确分组的内容

编辑:到目前为止,我正在引用自动重新排序,即重新格式化。