I still think var
can make code more readable in some cases. If I have a Customer class with an Orders property, and I want to assign that to a variable, I will just do this:
var orders = cust.Orders;
I don’t care if Customer.Orders is IEnumerable<Order>
, ObservableCollection<Order>
or BindingList<Order>
– all I want is to keep that list in memory to iterate over it or get its count or something later on.
Contrast the above declaration with:
ObservableCollection<Order> orders = cust.Orders;
To me, the type name is just noise. And if I go back and decide to change the type of the Customer.Orders down the track (say from ObservableCollection<Order>
to IList<Order>
) then I need to change that declaration too – something I wouldn’t have to do if I’d used var in the first place.