如何在Visual Studio 2008中对代码进行排序(按方法名称)?
缺少剪切和粘贴,是否可以对Visual Studio 2008中的类中的方法进行排序?我喜欢井井有条的代码。
解决方案
我们可能会发现或者能够创建一个宏来执行此操作,但是VS没有内置的功能可以对方法进行排序。一些第三方生产力工具,例如Resharper和CodeRush,提供了一些对代码进行重新排序的功能。
ReSharper具有代码重新排序功能和"文件结构"视图,可让我们进行拖放重新排序。
Resharper将以有限的方式做得很好。这取决于我们想要多少。例如,它不会根据生命周期或者类似情况在asp.net页中对重写进行重新排序,但是它将保留属性,字段,方法以及未明确分组的内容
编辑:到了那时,我指的是自动重新排序(也称为重新格式化)。
这是一个免费插件,可满足要求:http://www.visualstudiogallery.com/ExtensionDetails.aspx?ExtensionID=800978aa-2aac-4440-8bdf-6d1a76a5c23c
更新
不幸的是,链接已过时。我们可以在http://www.rauchy.net/regionerate/docs/2007/05/download.html下载Regionerate
如果使用的是Resharper,则可以更改"类型成员布局"模板,以便按自己的喜好排序代码。请参见Resharper>选项>语言> C#>类型成员布局。
替代文字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>
模板系统非常强大,应该可以满足需求。