C# - прямой потомок двух самых успешных в мире компьютерных языков: С и C++. От С он унаследовал синтаксис, ключевые слова и операторы. Он позволяет построить и усовершенствовать объектную модель, определенную в C++. Кроме того, C# близко связан с другим очень успешным языком: Java. Имея общее происхождение, но различаясь во многих важных аспектах, C# и Java - это скорее "двоюродные братья". Например, они оба поддерживают программирование распределенных систем и оба используют промежуточный код для достижения переносимости, но различаются при этом в деталях реализации.
в состав элементов языка C# включены такие понятия, как делегаты (представители), свойства, индексаторы и события. Добавлен также синтаксис, который поддерживает атрибуты; упрощено создание компонентов за счет исключения проблем, связанных с COM (Component Object Model - модель компонентных объектов Microsoft - стандартный механизм, включающий интерфейсы, с помощью которых объекты предоставляют свои службы другим объектам). Подобно Java язык C# предлагает средства динамического обнаружения ошибок, обеспечения безопасности и управляемого выполнения программ. Но, в отличие от Java, C# дает программистам доступ к указателям. Таким образом, C# сочетает первозданную мощь C++ с типовой безопасностью Java, которая обеспечивается наличием механизма контроля типов (type checking) и корректным использованием шаблонных классов (template class).
Разработчики Java успешно решили многие проблемы, связанные с переносимостью в среде Internet, но далеко не все. Одна из них - межъязыковая возможность взаимодействия (cross-language interoperability) программных и аппаратных изделий разных поставщиков, или многоязыковое программирование (mixed-language programming). Кроме того, в Java не достигнута полная интеграция с платформой Windows. Java и Windows не являются прочно связанными средами.
А поскольку Windows - это наиболее широко используемая операционная система в мире, то отсутствие прямой поддержки Windows - серьезный недостаток Java. Чтобы удовлетворить эти потребности, Microsoft разработала язык C#.