public
is really just an access modifier used, as you already know, on classes, fields etc.
The var
keyword on the other hand is a shortcut for “whatever type the statement on the right returns”. This is really just compiler candy, as it will be resolved to a concrete type (e.g. Int32
) during compilation.
EDIT: If you are interested in what is a type and what is not, then you might want to have a look at http://msdn.microsoft.com/en-us/library/3ewxz6et.aspx. It will answer the first part of the question explicitly.
4
solved What is a “public” keyword , is it a type?