The C# documentation uses the term "user-defined" a fair amount. For instance:
The as operator can't perform... user-defined conversions...
Though I haven't come across a formal definition, I assume that anything not in the C# language specification is user-defined.
That said, I initially thought user-defined meant anything built out of the language (as opposed to being part of the language), but that might not hold water, because it's possible to implement the C# compiler in C#.
It seems clear that int
and double
are not user-defined; it's less clear, though, with String
and DateTime
.
What about anything that's part of the Framework libraries but not part of C#? Yuval's answer indicates that the Framework libraries are not user defined whereas Patricks answer indicates they are.