c# 关键字 var 会减慢编译速度吗?



C# 具有var关键字,该关键字强制编译器推断变量类型。
c# 编译器还必须检查变量类型是否与分配的值兼容。

我听说var会减慢编译速度,我不应该经常使用它,但我喜欢懒惰,让编译器为我工作,特别是你必须在声明期间为用var声明的变量赋值。

那么,在大量使用时,它会极大地影响编译时间吗?

除非你有需要(几十)分钟来构建的大型项目,否则var可能导致的任何性能差异都是不明显的。

请记住,无论有没有var,编译器都已经必须执行大量的类型兼容性检查,因此它已经具有"推断"类型的信息。 避免var并不能消除此类型检查。

我听说var会减慢编译速度,我不应该经常使用它......

这听起来像是反对使用var的人提供的借口。


这导致了何时使用var的问题,在这个话题上的意见和偏好各不相同;也许是合理的,存在(可以说)过度使用的可能性。 我个人倾向于仅在三种相当明确的情况下使用var

  • 当必须时,即匿名类型:var foo = new { Foo = 314 };
  • 当变量类型(非常)复杂时,通常是 LINQ 查询的结果
  • 当实际类型"完全明显"时:

    • var foo = (Foo) obj;var foo = obj as Foo;
    • var foo = new Foo();
    • var foo = Foo.Create();

最新更新