122

每当您创建新页面或项目时,Visual Studio 都会自动为您创建 using 语句。其中一些你永远不会使用。

Visual Studio 具有“删除未使用的用法”的有用功能。

我想知道如果从未访问过的 using 语句仍然在文件顶部提及,是否会对程序性能产生负面影响。

4

6 回答 6

148

未使用的 using 不会影响应用程序的运行时性能。

它会影响 IDE 的性能和整个编译阶段。原因是它创建了一个额外的命名空间,必须在其中进行名称解析。然而,这些往往是次要的,在大多数情况下不会对您的 IDE 体验产生明显影响。

出于同样的原因,它还可能影响调试器中评估表达式的性能。

于 2009-07-22T02:34:27.500 回答
14

不,这只是编译时/编码风格的事情。.NET 二进制文件在后台使用完全限定名称。

于 2009-07-22T02:33:37.280 回答
10

以下链接很好地阅读了为什么要删除未使用的引用解释了从应用程序中删除未使用的引用是多么有用。

以下是链接的一些摘录:

  1. 通过删除应用程序中任何未使用的引用,您可以防止CLR在运行时加载未使用的引用模块。这意味着您将减少应用程序的启动时间,因为加载每个模块需要时间,并避免编译器加载永远不会使用的元数据。您可能会发现,根据每个库的大小,您的启动时间会显着减少。这并不是说您的应用程序在加载后会更快,但知道您的启动时间可能会减少可能会非常方便。

  2. 删除任何未使用的引用的另一个好处是可以降低与命名空间发生冲突的风险。例如,如果您同时拥有System.DrawingSystem.Web.UI.WebControls引用,您可能会发现在尝试引用 Image该类时会发生冲突。如果您在类中使用了与这些引用匹配的指令,则编译器无法判断要使用哪些指令。如果您在开发时经常使用自动完成功能,删除未使用的命名空间将减少您键入时文本编辑器中自动完成值的数量。

于 2017-05-11T10:19:24.223 回答
8

对执行速度没有影响,但可能会对编译速度/智能感知产生一些轻微影响,因为有更多潜在的命名空间来搜索正确的类。我不会太担心它,但是您可以使用 Organize Usings 菜单项来删除和排序 using 语句。

于 2009-07-22T02:34:39.073 回答
6

不执行的代码不会影响程序的性能。

于 2009-07-22T02:46:02.737 回答
5

不,编译程序时涉及多个过程。当编译器开始查找引用(类、方法)时,它将仅使用代码中使用的引用。using 指令仅告诉编译器在哪里查找。许多未使用的 using 语句可能会出现性能问题,但只是在编译时。在运行时,所有外部代码都被正确链接或包含在二进制文件中。

于 2009-07-22T02:36:55.357 回答