Dlaczego tak
Słowo var oznacza, że typ zmiennej kompilator ustala na podstawie wyrażenia inicjującego, więc deklaracja var bez wartości początkowej jest błędem — kompilator nie ma z czego wywnioskować typu. Zapis var n = 5 tworzy zmienną typu int. Przypisania int k = 'A' (kod znaku 65) i double d = 3 są poprawne, bo C# wykonuje niejawne konwersje rozszerzające z char na int i z int na double.