c# - 就性能而言,使用不必要的 using\imports 声明是否有任何意义

标签 c# asp.net vb.net

McCarson.LearningToCode.Week(3);
添加上下文以设置体验期望

我见过开发人员导入库中非常特定元素的代码隐藏引用,以及导入整个库本身的引用,而与所需元素是什么无关。页面需要引用的特定元素节省了多少内存(如果有),以至于仅导入所需元素是否被认为是最佳实践,或者这是一个微不足道的问题? (我确实看到它边缘化了错误的空间)

我研究了 MSDN,没有找到答案,所以在这里提问似乎是一个合乎逻辑的选择

最佳答案

使用/导入首先是一种简写,以避免必须使用完全限定的类型名称(命名空间 + 类名)。

也可能存在性能方面的考虑,但仅限于编写代码时,而不是在运行时。无论您如何编写代码,IL 仍将使用完全限定的类型名。如果您没有给出完全限定的名称,编译器和 Intellisense 必须“猜测”您引用的类所在的使用的命名空间。 95% 的情况下都不会出现任何问题。

从歧义的角度来看,使用/导入整个命名空间可能会出现问题。例如,至少有 3 个具有“Timer”类的命名空间。他们每个人都是不同的类型,具有不同的行为和不同的属性/事件。

如果您使用/导入这些 namespace 中的任何两个,则类名“Timer”不再像“string”或“object”那样含糊不清。因此,突然之间,您必须再次对所有 Timer 实例使用完全限定名称。

因此,在极少数情况下,在全局级别上使用/导入整个命名空间将导致无穷无尽的问题。因此,最好限制 use/include 指令的范围和深度。

关于c# - 就性能而言,使用不必要的 using\imports 声明是否有任何意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491615/

相关文章:

c# - 从 ASP.NET 中的 POST 方法检索数据

vb.net - 为什么 sender 的行为就好像它已作为 byref 传递一样?

vb.net - 在vb.net中将字符串转换为datetime

C# 密码派生字节 : seems that Salt does'nt matter

c# - 是否可以在 C# 中扩展 'using' block ?

c# - 自动属性初始化与构造函数初始化哪个优先?

asp.net - 在 IIS 7 上调试 500 错误

c# - 更新后如何刷新 c# dataGridView?

asp.net - 运行时查看阿拉伯字符

mysql - 删除记录后如何重新编号列