1. ローカル変数の型をなるべく暗黙的に指定すること¶
var は動的型付けではない。あくまでも型推論が行われていて暗黙的に静的型付けされている。
型を明記することで、意図しない結果を及ぼす可能性が出てくる。
- var
を用いてわかりにくくなるケースがあるが、これは変数名をわかりやすくすることで回避することも可能。
しかし開発者からすると、コンパイラが決定した型がなんなのかが分からないという問題点がある。
一方で、場合によっては開発者よりもコンパイラのほうが変数に最適な型を選びだしてくれる。
Calling IEnumerable.Where instead of IQueryable.Where
派生元(基底クラス)をあえて記述しているため、コンパイルは通るが、パフォーマンスが著しく落ちる場合がある。IQueryableを使うと効率的な計算が可能。上記の例のように適切なクエリツリーが作成されるなど。(特にデータがリモートサーバー上にある場合有効)全部リモートから返されると大変。
開発者にとってコードを理解するための型の宣言が必要にならないのであれば、ローカル変数をvarとして宣言するのが最善。