我想知道是否有任何原因(除了整理源代码)为什么开发人员使用Usings
Visual Studio 2008中的"删除未使用"功能?
有几个原因你想要把它们拿出来.
这是毫无意义.他们没有增加价值.
这令人困惑.该命名空间使用了什么?
如果不这样做,那么using
当代码随时间变化时,您将逐渐累积无意义的语句.
静态分析较慢.
代码编译速度较慢.
另一方面,没有太多理由让它们进入.我想你可以省去必须删除它们的努力.但如果你那么懒,你就会遇到更大的问题!
我会说相反 - 删除不需要的,不必要的使用语句非常有帮助.
想象一下,你必须在3个月,6个月,9个月内回到你的代码 - 或者其他人必须接管你的代码并维护它.
如果你有一个很长的使用声明的清单,并不是真正需要的,那么查看代码可能会非常混乱.为什么在那里使用,如果没有从该命名空间使用?
我想在专业环境中的长期可维护性方面,我强烈建议尽可能保持代码清洁 - 这包括从中倾倒不必要的东西.较少的混乱等于较少的混淆,因此更高的可维护性.
渣
在我看来,这是一个非常明智的问题,人们在回应时会以相当轻率的方式对待这个问题.
我要说任何对源代码的更改都需要合理.这些变化可能会产生隐藏成本,提出问题的人希望了解这一点.他们没有要求被称为"懒惰",因为一个人是动画.
我刚刚开始使用Resharper,它开始对我负责的项目发出警告和样式提示.其中包括删除冗余使用指令,还有冗余限定符,大写等等.我的直觉是整理代码并解决所有提示,但我的业务主管警告我不要进行不正当的更改.
我们使用自动构建过程,因此对SVN存储库的任何更改都会生成我们无法链接到项目/错误/问题的更改,并会触发自动构建和发布,这些更改不会对以前的版本进行任何功能更改.
如果我们看一下冗余限定符的删除,这可能会导致开发人员混淆,因为我们的Domain和Data层只能通过限定符来区分.
如果我看一下正确使用anachronyms(即ABCD - > Abcd)的大小写,那么我必须考虑到Resharper不会重构我们使用该引用类名的任何Xml文件.
因此,遵循这些提示并不像它看起来那么直截了当,应该受到尊重.
Intellisense弹出窗口中的选项较少(特别是如果命名空间包含许多Extension方法).
理论上智能感知也应该更快.
除了已经给出的原因之外,它还可以防止不必要的命名冲突.考虑这个文件:
using System.IO; using System.Windows.Shapes; namespace LicenseTester { public static class Example { private static string temporaryPath = Path.GetTempFileName(); } }
此代码无法编译,因为名称空间System.IO和System.Windows.Shapes都包含一个名为Path的类.我们可以通过使用完整的类路径来修复它,
private static string temporaryPath = System.IO.Path.GetTempFileName();
或者我们可以简单地删除该行using System.Windows.Shapes;
.
删除它们.更少的代码可以看到和想知道节省时间和混乱.我希望更多的人能够保持简单,简洁和整洁.这就像在你的房间里有脏衬衫和裤子.这很难看,你不得不想知道为什么会这样.