Я отсылаю вас к первой странице спецификации C #, которая описывает важные факторы, влияющие на дизайн языка. Несколько цитат, которые указывают, какими были некоторые важные факторы, и продолжают быть:
современный, объектно-ориентированный и типобезопасный
-
, немедленно знакомый программистам на C, C ++ и Java.
-
Современный дизайн программного обеспечения все больше опирается на программные компоненты в форме автономных и самоописываемых пакетов функциональных возможностей. Ключом к таким компонентам является то, что они представляют модель программирования со свойствами, методами и событиями; у них есть атрибуты, которые предоставляют декларативную информацию о компоненте; и они включают свою собственную документацию. C # предоставляет языковые конструкции для непосредственной поддержки этих концепций, что делает C # очень естественным языком для создания и использования программных компонентов.
-
Некоторые функции C # помогают создавать надежные и долговечные приложения: сборка мусора [...] обработка исключительных ситуаций [...] безопасная конструкция типа
-
C # имеет единую систему типов. [...] значения любого типа могут храниться, транспортироваться и обрабатываться согласованным образом
-
Чтобы гарантировать, что программы и библиотеки C # могут со временем развиваться совместимым образом, большое внимание было уделено версиям в дизайне C #. Многие языки программирования уделяют мало внимания этой проблеме, и в результате программы, написанные на этих языках, ломаются чаще, чем это необходимо, когда вводятся более новые версии зависимых библиотек. Аспекты дизайна C #, на которые напрямую влияли соображения управления версиями, включают отдельные виртуальные модификаторы и модификаторы переопределения, правила разрешения перегрузки методов и поддержку явных объявлений членов интерфейса.