【问题标题】:What are the benefits of reducing references? [duplicate]减少引用有什么好处? [复制]
【发布时间】:2016-05-28 20:55:32
【问题描述】:

有什么区别:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System;
using System.Collections.Generic;

添加“太多”引用时真的会影响性能吗? 对于大型应用程序,删除无用的引用是否有区别?

我的意思是,如果我使用“使用系统”,它似乎足以满足我的大部分需求,那么为什么我要通过在系统参考下添加特定参考来具体呢?

谢谢

【问题讨论】:

  • Visual Studio(或者它是 ReSharper 扩展?)显示较少的灰色“未使用引用”行:} 编译的代码中 没有区别 - 类型是完全解决; “使用”只是告诉编译器它们应该从哪里解析。与所有代码一样,我建议保持良好的内务管理。
  • @user2864740 此功能不需要扩展。
  • @user1751825 很高兴知道 - 自从我使用 Vanilla VS 安装以来已经很长时间了:D
  • 我使用 Visual Studio Community 2015 并且我确认不需要扩展来拥有“显示潜在修复”,它允许我删除未使用的引用。

标签: c#


【解决方案1】:

这是代码可读性的问题。是的,也许现在在您编写代码时,您知道您没有使用 System.Linq,因此它的存在不会打扰您。毕竟,总有一天你可能会用到它,对吧?

但是有一天其他人会阅读和维护您的代码,或者您会在之后的很长一段时间内忘记它包含的内容,他们会(或者您会)在您的代码中寻找错误Linq 调用,并且您对 System.Linq 的引用将暗示该文件是为使用 Linq 而构建的,这将浪费他们的时间。是的,可能只有一点点时间,但一点点时间加起来很快。当你对“Linq”进行文件搜索时,你只实际使用了 5 次,却得到 1000 个结果,你会怎么做?

永远不要引用您不使用的代码。当您决定使用它时,请参考它。每次您引用不必要的代码“因为也许有一天我可能会使用它”时,其他开发人员会看到它并认为您可能使用了它的五十次。

【讨论】:

  • 关于System.Linq 请记住,您始终可以通过 Ctrl+ 找到丢失的命名空间。但 Linq 是扩展方法库,所以我可能会让初学者感到困惑,为什么 IEnumerable 对象中的方法较少
【解决方案2】:

通过使用using,您将包含命名空间,而不是引用程序集。

此外,尽可能具体化以避免命名冲突也很重要。请看一下这个基本的命名空间,覆盖MSDN article

关于performance

【讨论】:

  • 好的,现在我明白了。所以目标是防止可能的冲突,例如,如果两个命名空间具有相同的类“文件”,那么我就减少了冲突。谢谢,我将阅读您在此处发布的文章。
  • 如果你在 using 指令中使用命名空间,你可以直接使用命名空间类,所以如果你一开始就使用 System.IO,你可以只使用 File 类。如果你不想在 using 指令中声明它,你可以使用 is 前缀,如 System.IO.File 但你必须引用程序集
【解决方案3】:

这个问题已经回答了herehere,可能还有其他几个地方。

主要内容是它们不会对正在运行的应用程序产生性能影响,但它们影响编译时间。这可能是最大的一个,可能与“性能”有关。

也就是说,它可以让您的代码保持干净。这对您的个人项目可能无关紧要,只有您能看到您的代码。但是,如果您在专业环境中,其他人将不可避免地使用您的代码,那么不必要的使用可能会导致混淆,尤其是对于初级开发人员。

还有其他问题,我鼓励您阅读这些问题以了解这些问题。

【讨论】:

    【解决方案4】:

    包含更具体的“使用”引用的一个原因是使其余代码不那么冗长。但它对应用程序的编译或性能没有影响。

    包含未使用的引用是没有意义的,应该避免。

    【讨论】:

      【解决方案5】:

      当然,如果没有在代码中的任何地方使用引用的汇编,则省略。 此外,编译中也省略了部分未使用的代码。 例如,如果你定义一个 Int,设置它,但不要在任何地方使用,它会从编译中被忽略。

      【讨论】:

        猜你喜欢
        • 2011-07-22
        • 2011-03-16
        • 1970-01-01
        • 2015-11-24
        • 2011-11-04
        • 2019-08-22
        • 2015-11-10
        • 1970-01-01
        • 2013-06-01
        相关资源
        最近更新 更多