Why we can only use const keyword with primitive type in C# and cannot be used with user-defined types? Moreover, what is the concept that const are static by-default?