This page is under construction.
Virtually all ambitious programming languages have internal inconsistencies. C# is no exception. Here are ones that I find surprising
or annoying:
The C# language is, on the surface, relatively simple. However, strings, structs, and delegates have syntax or semantics that are
not consistent with the design principles of the language.
- Strings are reference types that behave like value types.
- Structs are value types whose behavior is a mix of value and reference behaviors.
- Delegates are reference types that are declared and used in a fashion unlike any other C# reference type.