C# - это "Си-четыре-плюса" - это фактически микрософтовский ответ Java.
Java - это корпоративный язык, исправляющий недостатки C++, как их видят корпорации: по сравнению с C++, программист освобождён от необходимости управлять памятью (в языке есть сборщик мусора), убраны опасные вещи вроде адресной арифметики или бесконтрольного выхода за границу массивов, добавлены потоки и примитивы синхронизации, привязанные к лексическому контексту, все объектные типы имеют общий суперкласс (Object) и т.п. На Java писать безопаснее, поэтому программист, освобождённый от поиска причин бесконечных коредампов и дедлоков, может, наконец, сосредоточиться на реализации бизнес-логики. В принципе, отчасти это получилось.
Кроме того, скомпилированный Java-код исполняется процессором не напрямую (как C++), а посредством виртуальной машины (JVM), что позволяет достичь практически абсолютной переносимости. От целевой платформы требуется только JVM и нативные библиотеки, используемые приложением (если есть). Интерпретатор байт-кода, конечно, работает в разы медленнее, чем исполнение машинного кода, но это - константные расходы, и кроме того, тогда уже были планы на jit (компиляция часто исполняемых участков байт-кода в машинный код). Сегодня jit во многих случаях обгоняет статические компиляторы по производительности сгенерированного машинного кода.
На середину 1990-х это смотрелось продвинуто и перспективно, поэтому Билл решил подмять технологию под себя. Вначале он выпустил пакет "улучшений" к Java, а затем идея была в том, что все на них подсядут, и MS станет законодателем Java. Но Sun пресёк такое развитие событий в зародыше: Билл получил по зубам судебным иском и решил, что у него должна быть своя Java, с блэкджеком и окошками. Так появился C#.
Так что правильнее сравнивать C# не с C++, а с Java. Он менее универсальный, чем Java (работает фактически только в инфраструктуре MS), но лучше интегрируется с продуктами MS, чем Java. По синтаксису все трое, естественно, похоже, т.к. целью разработки и Java, и C# было переманить программистов с C++, доминировавшего на рынке прикладной разработки в 1990-е годы, и для этого - обеспечить им низкий порог входа.