11439


今まで、ある程度変数の型がわかりにくい場合にはvarキーワードを使用せずに  
型を明示して宣言していました。

しかし最近は全てのローカルスコープでvarを使用しています。

理由は以下です。

  * 複数の変数宣言がある場合、可読性が高くなる場合がある。
[code]     var i = 10;

    var s = "foo";
    var c = 'c';
    
[/code]

  * C#には右辺で型を明示できる場合が多い
[code]     var a = new Foo();

    var b = default(Foo);
    
[/code]

  * 振る舞いがわかっていれば、具体的に型がわかっていなくとも問題ない場合がある
[code]     var a = GetFoo();

    for (var i = 0; i < 10; ++i) {
      a += i;
    }
    Console.WriteLine(a);
    
[/code]

質問ですが、一般ではvarの乱用は避けるべきでしょうか？


CC BY-SA 3.0
2015-06-17T07:42:30.467
11435
2015-06-17T09:52:21.987
9945
question
c#
varキーワードの使用頻度について


[C# のコーディング規則 (C# プログラミング ガイド)](https://msdn.microsoft.com/ja-
jp/library/ff926074.aspx)

> 暗黙的に型指定されるローカル変数
>
>   * 変数の型が代入の右側から明らかである場合、または厳密な型が重要でない場合は、ローカル変数の暗黙の型指定を使用します。
>   * 代入の右側から型が明らかではない場合は、var を使用しないでください。
>   * 変数の型を指定するときに変数名に頼らないでください。 変数名が正しくない場合があります。
>   * dynamic の代わりに var を使用しないようにしてください。
>

ローカルスコープ内で多用する分には全く問題ないと思われます。ローカルスコープが巨大である場合は別の問題があるので、それは除きます。


CC BY-SA 3.0
2015-06-17T09:25:32.233
11439
2015-06-17T09:25:32.233
2238
11435
answer


避ける必要は、ありません。  
逆に必ず使わなくてはいけないというわけでもありません。

個人的見解としては、int、longなどの数値型の場合、varを使わないほうが良い場合があります。  
それ以外、varを使用できるのであれば、varを使用すべきです。


CC BY-SA 3.0
2015-06-17T09:52:21.987
11440
2015-06-17T09:52:21.987
2207
11435
answer