例如,我很少需要:
using System.Text;
但它总是默认存在的。如果代码中包含不必要的using指令,我假设应用程序将使用更多内存。但是还有什么我应该注意的吗?
同样,如果同一个using指令只在一个文件中使用,而在大多数/所有文件中使用,会有任何区别吗?
编辑:请注意,这个问题不是关于不相关的概念,称为using语句,旨在帮助管理资源,确保当一个对象超出作用域时,它的IDisposable。方法被调用。参见c#中“using”的用法。
例如,我很少需要:
using System.Text;
但它总是默认存在的。如果代码中包含不必要的using指令,我假设应用程序将使用更多内存。但是还有什么我应该注意的吗?
同样,如果同一个using指令只在一个文件中使用,而在大多数/所有文件中使用,会有任何区别吗?
编辑:请注意,这个问题不是关于不相关的概念,称为using语句,旨在帮助管理资源,确保当一个对象超出作用域时,它的IDisposable。方法被调用。参见c#中“using”的用法。
当前回答
没有对应于使用的IL构造。因此,using语句不会增加应用程序内存,因为没有为它生成代码或数据。
Using仅在编译时用于将短类型名解析为完全限定类型名的目的。因此,不必要的使用所带来的唯一负面影响就是稍微减慢编译时间,并在编译期间占用更多内存。不过我不担心这个。
因此,使用你不需要的语句的唯一真正的负面影响是在智能感知上,因为当你输入时,潜在的匹配列表会增加。
其他回答
不要忘记编译器在构建项目时做了很多工作来优化所有内容。使用that在很多地方都被使用,或者1在编译后不应该做不同的事情。
如果你想保持你的代码干净,不使用的using语句应该从文件中删除。当你在一个需要理解你的代码的协作团队中工作,认为你所有的代码都必须维护,更少的代码=更少的工作,好处是长期的。
留下额外的using指令是可以的。除去它们有一点价值,但不是很大。例如,它使我的智能感知完成列表更短,因此更容易导航。
编译的程序集不受无关的using指令的影响。
有时我把它们放在一个#区域,并让它折叠;这样可以更清晰地查看文件。在我看来,这是#region为数不多的好用途之一。
没有对应于使用的IL构造。因此,using语句不会增加应用程序内存,因为没有为它生成代码或数据。
Using仅在编译时用于将短类型名解析为完全限定类型名的目的。因此,不必要的使用所带来的唯一负面影响就是稍微减慢编译时间,并在编译期间占用更多内存。不过我不担心这个。
因此,使用你不需要的语句的唯一真正的负面影响是在智能感知上,因为当你输入时,潜在的匹配列表会增加。
using语句不会影响性能,因为它只是限定标识符名称的一个助手。因此,如果你使用System.IO,你不必输入System.IO.Path.Combine(…),你可以简单地输入Path.Combine(…)。