【问题标题】:Is there a performance hit in using the 'var' keyword in C#? [duplicate]在 C# 中使用“var”关键字是否会影响性能? [复制]
【发布时间】:2010-12-17 21:40:07
【问题描述】:

可能重复:
C# ‘var’ vs specific type performance

我广泛使用“var”关键字。一位同事告诉我,使用它时性能受到影响,但无法支持他的评论。有谁知道这样的性能影响?

【问题讨论】:

标签: c# syntax


【解决方案1】:

已经有人在这里问过that question。总之,不,生成的IL代码是一样的。因此,没有性能命中。如果您想知道做某事的方式与另一种有何不同,只需编写一个示例,然后使用Reflector 来分析差异。

【讨论】:

  • 那么问题应该作为重复关闭,不是吗?
  • 感谢您的链接。我搜索了 SO,但找不到任何关于此的内容。
【解决方案2】:

不,var 只是语法糖。它实际上并没有被编译成 MSIL。尝试使用 var 关键字和不使用 var 关键字编译一些代码,然后在 Reflector 中打开程序集以亲自查看。

【讨论】:

    【解决方案3】:

    由于这是一个编译时特性,可以想象编译时间可能会变慢,但运行时间不会变慢。

    【讨论】:

    • 是的。它可以为您的构建增加许多纳秒。
    【解决方案4】:

    此功能称为类型推断。编译器将在编译时推断出正确的类型,生成的 msil 将包含正确的类型

    【讨论】:

      【解决方案5】:

      他是指编译时还是运行时?

      在运行时,不可能对性能造成影响。 var 关键字完全由编译器处理,完全不可能从 IL 判断是否使用了 var 关键字。您的朋友可能会想到 C# 4 的新 dynamic 关键字,它确实会对性能产生影响。

      在编译时,可能会对性能产生微小的影响,但不必担心。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-26
        • 2017-07-08
        • 1970-01-01
        • 2011-01-20
        • 2013-01-18
        • 1970-01-01
        • 1970-01-01
        • 2013-09-04
        相关资源
        最近更新 更多