I know we cannot do this at class level but at method level we can always do this.
var myList=new List<string> // or something else like this
This question came to my mind since wherever we declare variable like this. We always provide the type information at the RHS of the expression. So compiler doesn’t need to do type guessing. (correct me if i am wrong).
so question remains WHY NOT at class level while its allowed at method level
There are technical issues with implementing this feature. The common cases seem simple but the tougher cases (e.g., fields referencing other fields in chains or cycles, expressions which contain anonymous types) are not.
See Eric Lippert’s blog for an in-depth explanation: Why no var on fields?