有什么方法可以摆脱我的 .cs 文件顶部的长长的使用列表吗?
-
09-06-2019 - |
题
随着我的解决方案中的命名空间越来越多,文件顶部的 using 语句列表变得越来越长。在我的单元测试中尤其如此,对于每个可能被调用的组件,我需要包括接口、IoC 容器和具体类型的使用。
我的集成测试文件中有超过 17 行的 using,它变得非常混乱。有谁知道是否有一种方法可以使用语句为我的基础定义宏?还有其他解决方案吗?
解决方案
有些人喜欢将用途隐藏在 #region
. 。不然我觉得你运气不好。除非您想将名称空间放在所有引用对象上。
其他提示
我知道我不应该大声说出来,但是,也许重新考虑一下你的设计。
1 个文件中 17 次使用 = 大量耦合(在命名空间级别)。
我自己也受不了雷沙珀。但我也无法忍受凌乱的 using 语句。我用 电源命令 VS 的插件,它有一个方便的“删除和排序”使用语句命令(以及其他好东西)。
这里有四个可能的问题;
代码中的命名空间将类划分得太细。 例如,如果您有;
using MyCompany.Drawing.Vector.Points;
using MyCompany.Drawing.Vector.Shapes;
using MyCompany.Drawing.Vector.Transformations;
考虑将它们折叠成单个 MyCompany.Drawing.Vector
命名空间。分配太多可能不会给你带来好处。Visual Studio代码分析/FxCop对此有一个规则,检查命名空间中的类的数量。太少了,它会警告你。
您在同一个班级中投入了太多测试。 如果您正在引用 System.Data
, System.Drawing
, , 和 System.IO
在同一类中,考虑编写更多原子测试——一些访问数据库,一些绘制图像,一些访问文件系统。然后将每种类型分为三个测试类。
您正在编写的测试做得太多了。 如果您引用大量名称空间,您的测试可能会将太多功能耦合在一起。这种耦合通常会出现错误,因此请尝试将大的、范围广泛的函数分解为更小的部分,并在单独的文件中测试它们。
很多都是多余的。 它们是全部使用的,还是只是从其他文件复制粘贴的。右键单击代码编辑器,然后从“组织使用”选项中进行选择以删除未使用的语句。
有人知道是否有一种使用语句为我的基础定义宏的方法?
您的意思是您经常使用的名称空间会自动添加到每个新类中吗?如果是的话,Resharper 也可以做到这一点。此外,它还有一个功能,可以将使用放在代码清理的区域中。Resharper 可能是一个不错的选择(根据我自己的经验,你不会后悔的)。
VS2008 添加了一个“组织使用”上下文菜单,其中包含“排序”、“删除”和“删除并排序”选项,可以对每个文件执行您想要的操作。Visual Studio Power Commands 加载项在项目和解决方案的解决方案资源管理器中添加了一个上下文菜单,该菜单分别针对项目中的所有文件和解决方案中的所有项目进行“删除和排序”。
如果要更改创建新文件时执行的默认 using 语句,请查看 C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033 目录。它包含一堆 zip 文件,您可以修改这些文件来更改代码文件的模板(显然,向上移动目录结构以更改其他语言或其他类型的文件)。
看 这里 了解更多信息。
使用别名可能会有所帮助。不确定它是否值得,但不是:
using System.Web.UI;
using System.Web.Mail;
using System.Web.Security;
... Control ...
... MailMessage ...
... Roles ...
您可以使用:
using W = System.Web;
... W.UI.Control ...
... W.Mail.MailMessage ...
... W.Security.Rolse ...
Resharper - Visual Studio 的插件 - 有一个功能可以从文件中删除未使用的Using's,但我不知道有什么功能可以完全达到您所描述的效果。
在VS2008中,您可以右键单击CS文件并选择“组织使用”。它也会删除未使用的内容并为您进行排序。除此之外,我只会使用#region。还, 控制键+中号+氧 将在设计时折叠所有区域功能等。我经常使用这个快捷方式!