I think this is a nice future, for example look this code:
Dictionary< SomeClass, List < SomeOtherClass > > myDic = new Dictionary< SomeClass, List < SomeOtherClass > >();
We really need to tell the compiler in this expression what the type of
myDic
is?
This is more concise and clear at least to me:
var myDic = new Dictionary< SomeClass, List < SomeOtherClass > >();
If you are developing an application, you should know the semantic of the method, then the code
var productsTable = GetProducsDataTable();
should not be a problem, if you are just reading the code, check this out.
List<product> products = GetData();
foreach(var product in products)
</product>
The no less readable code:
var products = GetData();
foreach(var product in products)
I think this is dependant on the context. I'm completely sure that if you choose your methods and variables names well, the code written will be more readable.