每当您创建新页面或项目时,Visual Studio都会自动为您创建使用语句。其中一些你永远不会使用。
Visual Studio具有“删除未使用的使用”的有用功能。
我想知道如果从未访问过的using语句仍然在文件的顶部提到,是否会对程序性能产生任何负面影响。
答案 0 :(得分:114)
未使用的使用对应用程序的运行时性能没有影响。
它可能会影响IDE的性能和整个编译阶段。原因是它创建了一个必须进行名称解析的额外命名空间。但是,这些往往很小,在大多数情况下不应对IDE体验产生明显影响。
出于同样的原因,它也会影响在调试器中计算表达式的性能。
答案 1 :(得分:13)
不,这只是一个编译时/编码风格的东西。 .NET二进制文件使用完全限定名称。
答案 2 :(得分:8)
以下链接A good read on why to remove unused references说明了如何从应用程序中删除未使用的引用。
以下是该链接的一些摘录:
删除应用程序中任何未使用的引用,即可
阻止CLR
加载未使用的引用模块
运行。这意味着你将减少你的启动时间
应用程序,因为加载每个模块需要时间并避免
使编译器加载永远不会使用的元数据。你可以
根据每个库的大小,找到你的启动时间
明显减少了。这并不是说你的申请会
一旦加载就会变得更快,但要知道你的情况会非常方便
启动时间可能会减少。
删除任何未使用的引用的另一个好处是您将
降低与命名空间冲突的风险。例如,如果你
引用了System.Drawing
和System.Web.UI.WebControls
,
您可能会发现在尝试引用时会出现冲突
Image
课程。如果您在类中使用匹配的指令
这些引用,编译器无法分辨使用哪些。
如果您在开发时经常使用自动完成,请删除未使用的
命名空间将减少您的自动完成值的数量
键入时的文本编辑器。
答案 3 :(得分:7)
对执行速度没有影响,但可能会对编译速度/智能感知产生轻微影响,因为有更多潜在的命名空间来搜索正确的类。我不会太担心它,但您可以使用“组织使用”菜单项来删除和排序使用语句。
答案 4 :(得分:4)
不,编译程序时涉及多个过程。当编译器开始寻找引用(类,方法)时,它将仅使用代码上使用的引用。 using指令只告诉编译器在哪里查看。很多未使用的using语句可能会出现性能问题,但只是在编译时。在运行时,所有外部代码都正确链接或作为二进制文件的一部分包含在内。
答案 5 :(得分:4)
不执行的代码不会影响程序的性能。