我有些怪异,并且倾向于通过清除using
每个类中的引用和s 来保留我的项目,以仅保留实际使用的内容。
我还能提出什么其他论据(除了使我的OCD平静下来)保持基本要领?我主要在考虑系统参考,对自定义工作的任何参考都会带来很多向后兼容性的问题。发行版占用空间更大吗?编译时间更长?
我有些怪异,并且倾向于通过清除using
每个类中的引用和s 来保留我的项目,以仅保留实际使用的内容。
我还能提出什么其他论据(除了使我的OCD平静下来)保持基本要领?我主要在考虑系统参考,对自定义工作的任何参考都会带来很多向后兼容性的问题。发行版占用空间更大吗?编译时间更长?
Answers:
如果您保持using
最低状态,Intellisense将对您有用得多,这是一个很大的优势。
除此之外,我认为没有任何收获。因此,也许C#编译器的运行速度可以提高1%。所以呢。
Ctrl+.
快速修复“添加名称空间XYZ
”
using
在确定它们实际上是不必要的之前不能忽略任何s,但除非首先编译了整个源文件,否则它无法确定。与项目引用一样,它们不会因为似乎未使用而被丢弃,因为它们可能以动态方式(在编译时无法检测到)使用。
由于在Visual Studio中完成此操作实际上很简单(单击鼠标右键),为什么不这样做呢?
这与Occam的Razor一致,只是简单的工程设计。
关于不这样做的后果,请考虑如果其他一些开发人员试图打开您的项目并且该项目包含(未使用的)对他/她的计算机上没有的库的引用(未使用)会发生什么。现在,可怜的开发人员需要弄清楚为什么存在该未解决的引用以及如何处理。
如果您愿意,请按照黄金法则考虑。您是否要接管一个项目,该项目具有很多您在计算机上没有的库的引用,并且您不知道它们为什么在那里?
using
语句只是让编译器能够完全引用类等。额外的using
语句对编译时间没有明显影响。
另外,运行时直到实际需要时才加载引用的程序集,因此我再次相信不需要的引用不会有任何负面影响。
如果使用Reflector之类的工具,查找和删除这些不必要的位几乎可以自动进行,所以我想花很多时间在这些活动上是浪费时间。例如,一两个小时的手动删除不需要的using
语句的费用要比Reflector许可证的费用要高-并且它还具有许多其他提高生产力的功能。
using
s和未使用引用之间的区别。两者有很大的不同!
除了上述内容,我想这里还没有提到,每个引用都需要一个.NET框架或一个外部DLL中的组件。如果是对外部DLL的引用,则在运行软件时(和位置)都需要具有该引用。
编辑-根据下面phoog的有效评论:如果未使用DLL,并且仅由于将其添加到引用中,则不需要随应用程序一起提供DLL,该应用程序仍将运行。为了处理代码中未使用的引用,您可能需要看一下:删除未使用的引用。
using
s和引用不是同一件事。许多答案都没有考虑到这一点。