Обучение С# после С++
В прогрессировании языков я изучаю C и С++. Теперь я хотел бы изучить С#. Я знаю, что между ними существуют серьезные различия - например, удаление указателей и сбор мусора. Тем не менее, я не знаю многих различий между ними.
Каковы основные отличия, которые программист С++ должен знать при переходе на С#? (Например, что я могу использовать вместо STL, синтаксические различия между ними или что-то еще, что может считаться важным.)
Ответы
Ответ 1
С# для разработчиков С++ - отличное место для начала. Это таблица, в которой перечислены наиболее важные сравнения между двумя языками.
Как только вы изучите некоторые из этих различий, вы можете выбрать автономный проект, который вы написали ранее на С++, и переписать его на С#. На первом проходе вы, вероятно, просто закончите перевод напрямую, используя тот же дизайн и алгоритмы. По мере того, как вы становитесь более комфортно с С#, вы узнаете, как использовать возможности языка, доступные только на С#, а также невероятно универсальную .NET Framework.
Ответ 2
Я думаю, важно отметить, что указатели на самом деле не были удалены из С#, но они все еще существуют, они повсюду, и они называются ссылками.
Ответ 3
У Charles Petzold есть .NET Book Zero, который разработан специально для программиста на C/С++, который хочет изучить С# и .NET. Это бесплатный PDF файл с его сайта. Весь исходный код, используемый в книге, доступен в виде отдельной загрузки Zip файла.
Ответ 4
Был аналогичный вопрос, который содержит множество указателей (pun inteded:-)) и ресурсы о различиях между С++ и С# и что обратить внимание при изучении перехода - Linux/Программист С++ для программиста Windows/С#.
Ответ 5
Посмотрите на общие коллекции и LINQ (все связанные технологии с LINQ) для функций типа STL.
Следует отметить, что ~/Destructor - это С++, не похоже на ~/finalizer в С#. См. IDisposable/using.