this:
const int a = 5;
compiles just fine, whereas
const var a = 5;
doesn't... while:
var a = 5;
compiles just as well as this:
int a = 5;
why?
this:
const int a = 5;
compiles just fine, whereas
const var a = 5;
doesn't... while:
var a = 5;
compiles just as well as this:
int a = 5;
why?
 
    
    The var keyword was intended to save you from writing long complex typenames, which cannot be constants.
It is very convenient to be able to write declarations like
var dict = new Dictionary<string, List<Definition>>();
It becomes necessary when using anonymous types.
For constants, this isn't an issue.
The longest built-in typename with constant literals is decimal; that's not a very long name.
It is possible to have arbitrarily long enum names which can be used as constants, but the C# compiler team apparently wasn't concerned for that.
For one thing, if you're making a constant enum value, you might as well put it in the enum.
Also, enum names shouldn't be too long.  (Unlike complex generic types, which can and frequently should)
 
    
    It is a compiler limitation, and the reason for that limitation is given by Eric Lippert here
 
    
     
    
    Constants without var:
const int Value1 = 1;
const int Value2 = 2;
Constants with var (anonymous type property values cannot be changed after creation):
var constants = new { 
  Value1 = 1, 
  Value2 = 2,
};
//use as constants.Value1
 
    
    Since constants must be built-in numeric types or string, you don't really save much; const int is the same length as const var and int is probably the most common type of constant. Then there's double which is really not all that long. If you have a lot of them to type, use the Alt selection feature ;-)
