c# 关键字 var 编译速度慢吗?
Does the c# keyword var slow compilation?
C# 有 var
关键字强制编译器推断变量类型。
C# 编译器还必须检查变量类型是否与赋值兼容。
我听说 var
会减慢编译速度,我不应该经常使用它,但我喜欢偷懒,让编译器为我工作,尤其是你必须为用 [= 声明的变量赋值10=] 声明期间。
所以它在大量使用的情况下会显着影响编译时间吗?
除非您有 HUGE 项目需要(数十)分钟 来构建,否则可能由 var
将不明显。
请记住,无论有没有 var
,编译器 已经 必须做很多类型兼容性检查,所以它已经有了 "infer" 类型。避免 var
并不会消除这种类型检查。
I heard that var
can slow compilation and that I shouldn't use it much ...
这听起来像是反对使用 var
的人提供的借口。
这导致了何时使用 var
的问题,并且在 那个 主题上的意见和偏好不同;也许合法地,存在(有争议的)过度使用的可能性。我的个人偏好仅在三种相当明确的情况下使用var
:
- 当你必须时,即匿名类型:
var foo = new { Foo = 314 };
- 当变量类型(非常)复杂时,通常是 LINQ 查询的结果
当实际类型为"completely obvious"时:
var foo = (Foo) obj;
或 var foo = obj as Foo;
var foo = new Foo();
var foo = Foo.Create();
C# 有 var
关键字强制编译器推断变量类型。
C# 编译器还必须检查变量类型是否与赋值兼容。
我听说 var
会减慢编译速度,我不应该经常使用它,但我喜欢偷懒,让编译器为我工作,尤其是你必须为用 [= 声明的变量赋值10=] 声明期间。
所以它在大量使用的情况下会显着影响编译时间吗?
除非您有 HUGE 项目需要(数十)分钟 来构建,否则可能由 var
将不明显。
请记住,无论有没有 var
,编译器 已经 必须做很多类型兼容性检查,所以它已经有了 "infer" 类型。避免 var
并不会消除这种类型检查。
I heard that
var
can slow compilation and that I shouldn't use it much ...
这听起来像是反对使用 var
的人提供的借口。
这导致了何时使用 var
的问题,并且在 那个 主题上的意见和偏好不同;也许合法地,存在(有争议的)过度使用的可能性。我的个人偏好仅在三种相当明确的情况下使用var
:
- 当你必须时,即匿名类型:
var foo = new { Foo = 314 };
- 当变量类型(非常)复杂时,通常是 LINQ 查询的结果
当实际类型为"completely obvious"时:
var foo = (Foo) obj;
或var foo = obj as Foo;
var foo = new Foo();
var foo = Foo.Create();