Using implicit typing does NOT mean that a variable is not strongly typed. This means that the compiler implies a type from the right side of the statement.
var i = 1;
i defined as having type int . This is exactly the same as the expression int i = 1; but implied by type.
Similarly, the following code is much easier to read:
var pairs = new List<pair<int, IEnumerable<string>>>();
than if you typed:
List<pair<int, IEnumerable<string>>> pairs = new List<pair<int, IEnumerable<string>>>();
and yet the results are exactly the same.
source share