Как уже упоминалось, ключевое слово 'var' не дает нам динамической типизации. Тип выводится во время компиляции.
Я использую var, когда думаю, что это имеет смысл; а именно, когда тип очевиден и он сокращает детализацию объявления:
var someDict = new Dictionary<string, int>();
Вместо ...
Dictionary<string, int>() someDict = new Dictionary<string, int>();
Однако, в вашем примере здесь:
var aName=getAllSomethings();
Я бы не использовал 'var', потому что, как вы уже заметили, вам необходимо проверить тип возвращаемого значения 'getAllSomethings ()' (плохой стиль именования для C # BTW), чтобы узнать, что такое aName , что просто делает код менее читабельным.