The ECMA standard lists these design goals for C#:
- C# is intended to be a simple, modern, general-purpose, object-oriented programming language.
- Because software robustness, durability and programmer productivity are important, the language should include strong type checking, array bounds checking, detection of attempts to use uninitialized variables, source code portability, and automatic garbage collection.
- The language is intended for use in developing software components that can take advantage of distributed environments.
- Programmer portability is very important, especially for those programmers already familiar with C and C++.
- Support for internationalization is very important.
- C# is intended to be suitable for writing applications for both hosted and embedded systems, ranging from the very large that use sophisticated operating systems, down to the very small having dedicated functions.
Reference : Dilip Kumar Jena ( https://mstechexplore.wordpress.com )