19

このvarキーワードは、読みやすさをほとんど損なうことなく、C# コードのノイズを減らすのに非常に役立ちます。明示的な型付けを使用するようになったのは、コンパイラーが強制する場合のみです。

var を使用してもコードの実行時の特性が変わらないことはわかっています。しかし、疑問が浮かびました: コンパイラが現在私に代わって行っているすべての余分な作業に対して、コンパイル時に大きなペナルティを払っているのでしょうか?

varmake を広範囲に使用すると、コンパイル時間にどのくらいの違いがあるかを確認するためにベンチマークを行った人はいますか?

4

4 に答える 4

20

私のアドバイス:両方の方法で試してください。結果を測定します。そしたらわかる。

私はベンチマークを行っていません。たとえ行ったとしても、それはあなたの質問に答えません. 私たちは、あなたが持っているハードウェア、あなたのマシンで他に何が実行されているか、典型的なプログラムがどのように見えるかを知りません. また、許容できるパフォーマンスまたは許容できないパフォーマンスと見なされるものもわかりません。そのすべてを知っているのはあなただけなので、この質問に答えられるのはあなただけです。

于 2010-02-18T16:00:33.580 に答える
16

とにかくタイプをチェックする必要があります。これは時間を節約することさえあります... OK、ありそうにありません:)
ただし、気にする必要はありません-開発環境が遅い場合は、メモリを増やすか、新しいコンピューターを購入してください。コードの書き方を変えないでください。

于 2010-02-18T10:26:49.270 に答える
3

正解は「測定不能」です。コンパイル中に C# コンパイラが行うパスの部分的な (まだ長い) リストについては、次を参照してください。

http://blogs.msdn.com/ericlippert/archive/2010/02/04/how-many-passes.aspx

次に、型推論はそのリストの単一パスの一部にすぎないことを理解してください。

于 2010-02-18T10:45:23.970 に答える
1

型チェックや型変換を行うには、とにかく右辺の型を見つける必要があります。結果を変数の型に代入するのは安価です。コストのほとんど (ある場合) は、すべてのローカル変数が宣言される前に式を評価できるようにするために実行しなければならなかったことにありますが、var を使用しなくても、これに対して料金がかかります。(ところで、上記の制約がパフォーマンスにまったく影響を与えない可能性はあります。)

于 2010-02-18T21:56:40.470 に答える