例如,我很少需要:

using System.Text;

但它总是默认存在的。如果代码中包含不必要的using指令,我假设应用程序将使用更多内存。但是还有什么我应该注意的吗?

同样,如果同一个using指令只在一个文件中使用,而在大多数/所有文件中使用,会有任何区别吗?


编辑:请注意,这个问题不是关于不相关的概念,称为using语句,旨在帮助管理资源,确保当一个对象超出作用域时,它的IDisposable。方法被调用。参见c#中“using”的用法。


当前回答

您的应用程序将不会使用更多内存。它是为了让编译器找到你在代码文件中使用的类。除了不干净,真的没什么伤害。

其他回答

using语句只是阻止您限定所使用的类型。我个人喜欢把它们清理干净。实际上,这取决于如何使用loc度量

当程序运行时,它不会改变任何东西。所需的一切都是按需装载的。所以即使你有using语句,除非你在命名空间/程序集中实际使用了一个类型,否则与using语句相关的程序集不会被加载。

主要是为了个人喜好。

除了编码偏好之外,删除未使用的using(s)/命名空间还有几个原因:

removing the unused using clauses in a project, can make the compilation faster because the compiler has fewer namespaces to look-up types to resolve. (this is especially true for C# 3.0 because of extension methods, where the compiler must search all namespaces for extension methods for possible better matches, generic type inference and lambda expressions involving generic types) can potentially help to avoid name collision in future builds when new types are added to the unused namespaces that have the same name as some types in the used namespaces. will reduce the number of items in the editor auto completion list when coding, posibly leading to faster typing (in C# 3.0 this can also reduce the list of extension methods shown)

删除未使用的名称空间不会做什么:

以任何方式改变编译器的输出。 以任何方式改变已编译程序的执行(更快的加载或更好的性能)。

无论是否删除未使用的using,生成的程序集都是相同的。

您的应用程序将不会使用更多内存。它是为了让编译器找到你在代码文件中使用的类。除了不干净,真的没什么伤害。

只使用实际使用的名称空间可以使代码保持文档化。

您可以通过任何搜索工具轻松地找到代码的哪些部分相互调用。

如果您有未使用的名称空间,这在运行搜索时没有任何意义。

我现在正在清理名称空间,因为经常有人问我应用程序的哪些部分正在以某种方式访问相同的数据。

我知道哪些部分以不同的方式访问数据,因为数据访问被名称空间分开,例如直接通过数据库和间接通过web服务。

我想不出比这更简单的方法了。

如果你只是想让你的代码成为一个黑盒(对开发人员来说),那么没关系。但是如果您需要长期维护它,那么它就像所有其他代码一样是有价值的文档。