Язык и Синтаксис.
C# — объектно-ориентированный языкпрограммирования.
C++ — компилируемый, статически типизированный языкпрограммирования общего назначения.
Многообразие кода на С++ больше, однако код на С# проще и лаконичнее. Языковые конструкции С++ и С# схожи, однако существенные различия можно найти в деталях. Синтаксис С# - упрощенная версия синтаксиса С++.
С++ кросплатформенный, хотя и с некоторыми оговорками, дополнительными затратами, а также бинарной несовместимость между платформами.C# оказался не кросплатформенный, несмотря на существование неофициальных .net окружений под разными платформами и даже потенциальную бинарную совместимость между платформами.
Библиотеки.
В С# огромное количество библиотек с .net идет в базе, плюс к ним множество свободно доступных библиотек, но в С++ библиотек больше, они имеют большую историю, за которую стали неплохо отлажены и оптимизированы, часто кросплатформенны, многие с открытым кодом.
Перспектива.
С++ и C# активно развиваются, так что перспективы этих языков примерно одинаковы. В поддержке приложений большой разницы между С++ и С# нет.
Скорость.
Скорость разработки на С++ и скорость разработки на С# становятся примерно одинаковыми.
Производительность кода.
Используя C#, проще написать код, преимущество С++ в возможности писать код, который будет выполняться непосредственно процессором, и возможности прямой работы с памятью.
Требовательность к ресурсам.
Почти любая задача на С++ может быть решена с меньшими требованиями к ресурсам. В тяжелых задачах, связанных с обработкой большого количества данных, С++ имеет сильные преимущества перед С#.
Выбор стоит делать, основываясь на приложении, которое вы собираетесь разрабатывать.
Список литературы:
https://ru.wikipedia.org/wiki/
https://habrahabr.ru/post/262461/