Первое, что нужно учитывать при переходе с C ++ на C #, это тот факт, что в большинстве случаев они имеют некоторый поверхностный синтаксис, но разница в парадигмах программирования становится все больше и больше по мере того, как вы углубляетесь в .Net.
Познакомьтесь с парадигмами программирования ядра C # перед тем, как начинать программировать, иначе вы можете попасть в ловушку написания программ на C ++ на C #, что далеко не лучшая идея на долгое время.
Наиболее важные вещи, к которым нужно привыкнуть:
- Автоматическое управление памятью и сборка мусора, включая шаблон удаления. Изучите основы и подводные камни.
- Что такое классы, интерфейсы, структуры и примитивы в .Net и как они ведут себя по сравнению с C ++.
- События, делегаты, свойства, лямбда-выражения - все это несколько новые концепции, пришедшие из C ++.
- .Net дженерики и различия между шаблонами.
- строки, массивы, пользовательские атрибуты, отражения, исключения и основы потоков в .Net, все они интенсивно используются повсеместно в .Net, и вы должны изучить их тонкости, чтобы эффективно их использовать.
- Программирование GUI в Winforms и ASP.Net (и, возможно, после WPF), компоненты, управление, привязка данных. Модель .Net GUI.
Сначала начните с общей книги .Net, которая знакомит вас со всеми этими понятиями. Прежде всего, я рекомендую книгу по чтению учебников и статей, чтобы в конце у вас была большая полная картина .Net . Статьи в интернете могут этого не достичь.
Лучшая общая книга .Net, которую я прочитал:
Professional C #, 3-е издание. Саймон Робинсон, Кристиан Нагель, Карли Уотсон, Джей Глинн, Морган Скиннер, Билл Эвджен
И, во-вторых, поскольку вы из C ++, и вы привыкли работать близко к металлу и мыслить так, как близко к тому, как работает оборудование (необработанное управление памятью (указатели, выделения памяти и т. Д.), Я могу рекомендую одну книгу , которая действительно демистифицирует , что такое .Net и что он делает:
CLR Via C # Джеффри Рихтера
Я не могу не подчеркнуть, насколько хороша эта книга для каждого разработчика .Net, особенно если он написан на C ++ и в то же время является одной из лучших книг .Net, которые я читал. Книгу приятно читать, и она охватывает темы:
- . Модель выполнения .Net (от MSIL до собственного кода)
- Управление памятью (как среда выполнения .net и сборщик мусора управляют памятью, компоновкой кучи, генерацией памяти, финализацией, кучей больших объектов)
- Типы проектирования
- Загрузка сборки, отражение, домены приложения
- и многие другие ...
Это мой лучший совет Я мог бы дать любому желающий стать опытным разработчиком C # в кратчайшие сроки.