0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

varについて

Last updated at Posted at 2021-11-20

varとは

C#3.0から利用可能となった暗黙の型指定。
メソッド内のローカル変数を宣言する際、
型名の代わりにvarを使用するとコンパイラが
自動で型を判断してくれる。

例 Dictionaryをvarに書き直してみる。

Dictionaryを使用した場合

        static void Main(string[] args)
        {
            Dictionary<string, int> dict = new Dictionary<string, int>();
            dict.Add("test1",1);
            dict.Add("test2",2);
            Console.WriteLine(dict["test2"]);
        }

実行結果
無題.png

varを使用した場合

        static void Main(string[] args)
        {
            var dict = new Dictionary<string, int>();
            dict.Add("test1",1);
            dict.Add("test2",2);
            Console.WriteLine(dict["test2"]);
        }

実行結果
無題.png

例のようにvarを使用すればコードを短く書けるので
可読性が上がり非常に良いと思われる。

MSDNのコーディング規約では以下のように記されている。

・変数の型が割り当ての右側から明らかである場合、または厳密な型が重要でない場合は、ローカル変数の暗黙の型指定を使用します。

・割り当ての右側から型が明らかではない場合、var を使用しないでください。 メソッド名から型が明らかであると想定しないでください。 変数の型は、new 演算子または明示的なキャストの場合に明らかであると見なされます。

・変数の型を指定するときに変数名に頼らないでください。 変数名が正しくない場合があります。
(var inputInt = Console.ReadLine();などStringを格納するのに変数名にIntが使われている場合)

・dynamic の代わりに var を使用しないようにしてください。

・for ループでループ変数の型を決定するときは、暗黙の型指定が使用されます。

・foreach ループでループ変数の型を決定するために暗黙の型指定を使用しないでください。

MSDNのサイトはこちら

まとめ

変数名に型名を入れるなどをしなければ、
世の中のトレンドとしてvarを使う流れになっている。
また、変数を初期化しない。
nullで初期化するなどは
コンパイルエラーを起こしてしまうため、
その点は注意したい。

参考文献
この記事は以下の書籍を参考にして執筆しました。

実戦で役立つ
C#プログラミングのイディオム/定石&パターン

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?