サイオステクノロジー技術部 武井です。C#の型推論について、アンチパターンも含めてちょっとだけまとめてみました。varとかいうやつです。
varの使いどころ
こういうコードがあったとします。
Dictionary<string, Dictionary<int, string>> hoge = new Dictionary<string, Dictionary<int, string>>();
長いですね、、、。こんな時のvarです。このように書き直すことが出来ます。
var hoge = new Dictionary<string, Dictionary<int, string>>();
コードがスッキリしました。右辺のnew Dictionary<string, Dictionary<int, string>>から型を推論してくれます。つまり、varはDictionary<string, Dictionary<int, string>>に等しいです。
ダメなパターン
以下のようなコードはアンチパティーンです。
var hoge = fuga.Result;
右辺から左辺の型が想像出来ないからです。string?int?どのみち、fugaのクラスの仕様を見てみないとわかりません、、、。