しらとりのブログ

社会人ひよこプログラマのtil

varはobject型ではありません

なんでも入る型じゃないです。知っている型だけ。

型推論

インスタンスを生成するコードを書きます。

Character character1 = new Character();
Dictionary<int, string> FooDictionary = new Dictionary<object, Action>();

明らかに冗長な部分があります。型宣言とコンストラクタです。varを使うと以下のように書き直すことができます。

var character1 = new Character();
var FooDictionary = new Dictionary<object, Action>();

このように変数に入るオブジェクトの型が決まっているときに使用できます。すっきりしてて可読性はこちらのほうが良いと思います。

ただ、以下のように関数の戻り値からの型推論はぱっと見分かりずらいので使わないようにしています。

var msg = GetMessage();

ポリモーフィズムするときなどもvarより基底クラスやインターフェースを書いたほうが分かりやすそうです。