Как мне перейти с Java на C #? - PullRequest
33 голосов
/ 17 октября 2008

Я хорошо знаю Java. Какие предостережения и ресурсы помогут мне перейти на другую сторону (C #) настолько безболезненно, насколько это возможно.

Ответы [ 9 ]

33 голосов
/ 17 октября 2008

Самый большой совет: соглашайтесь с .NET именами с самого начала. Таким образом, вам постоянно будут напоминать о том, на каком языке вы находитесь. (Звучит глупо, но это действительно полезно.) Примите как можно более идиомы языка.

Существуют различные книги специально для людей в вашей ситуации - поищите "C # для Java" в Amazon, и вы получите множество хитов. Стоит внимательно прочитать , чтобы убедиться, что вы не предполагаете, что в C # все будет работать так же, как и в Java. (Например, в C # экземпляры инициализаторов переменных выполняются до тела конструктора базового класса; в Java они происходят после. Тонкие вещи, подобные этой, могут занять некоторое время, и их легко пропустить, если вы занимаетесь скиммингом.)

Если вы собираетесь использовать C # 3, я бы получил книгу, которая определенно освещает это - все в C # 3 будет для вас новым. Бесплатный плагин: моя собственная книга ( C # in Depth ) охватывает C # 2 и 3, но предполагает, что вы уже знаете C # 1. (Другими словами, этого будет недостаточно, но вы можете захотеть это как «вторая» книга.)

13 голосов
/ 17 октября 2008

См. Эту замечательную статью о C # с точки зрения разработчика Java . Он имеет несколько идей о том, что можно сделать с обеих сторон, чтобы избежать минимальных накладных расходов. Наличие примера как на языке, который вы знаете, так и на языке, который вы хотите выучить, значительно облегчает процесс обучения.

3 голосов
/ 17 октября 2008
  1. Установите Visual Studio 2008 и Resharper с привязками клавиш IntelliJ IDEA. Это дает вам такие вещи, как побуждение включать пространства имен, если вы начинаете их использовать.
  2. Запустите новый проект и начните писать код Java, когда вы столкнетесь с чем-то, что не работает должным образом или не может найти класс, который вы пытаетесь использовать Google "PrintLn in c #".
  3. Написание тестов или фрагментов кода для проверок работоспособности, например, вы можете проверить, работает ли == для строк (работает)
  4. понимаю, что c # псевдоним Типы данных (int - это псевдоним для System.Int32, строка для System.String)
  5. посмотрите код других людей, который я рекомендую JP Boodhoos Код Google
  6. Возьмите работу в C #, есть много работ, требующих как Java, так и C #, особенно в поддержке.
  7. Знайте свои библиотеки, большинство библиотек Java были портированы, и в большинстве случаев их имя похоже на (Hibernate => NHibernate) или (Xstream => Xstream.Net). Не у каждой библиотеки есть очевидное имя, поэтому просто начните искать случайные, о которых вы здесь слышали. т.е. (Rhino.Mocks, HTMLAgilityPack, MBUnit, Rhino.Commons, Castle Project)
  8. Зайдите на собрания групп пользователей, найдите DNUG (группа пользователей Dot Net), они будут полезны, и вы можете получить полезный совет.
1 голос
/ 16 декабря 2008

Я сделал переход довольно легко, используя C # на работе, но одна из самых важных вещей, которую нужно сделать, это ознакомиться с .NET API и некоторыми мощными методами, доступными в C #.

После того, как я изучил библиотеку .net, я стал полагаться на нее гораздо чаще, чем раньше, поэтому изучение того, что она может сделать для вас, очень полезно. После этого, если вы вообще работаете с кодом БД, изучите LINQ, а также полезны методы lambas, анонимные типы и делегаты.

1 голос
/ 16 декабря 2008

Я знаю, что хороший ответ уже принят. Тем не менее, я хотел бы сделать дополнение ...

Я считаю, что изучение нового языка обычно включает в себя изучение тонких синтаксических различий ... особенно когда речь идет о разнице между языками в семействе C / C ++ / Java / C #.

В дополнение к хорошему толстому справочнику, я рекомендую получить карманную справку, такую ​​как C # 3 Pocket Reference от O'Reilly . Он не поможет вам с шаблонами проектирования и т. Д. ... но предоставит очень быструю справку о конкретных различиях языка, который вы используете.

Вот краткое описание этой книги с этого сайта:

C # 3.0 Pocket Reference включает в себя множество иллюстраций и примеров кода для объяснения:

  • Новые функции в C # 3.0, такие как лямбда-выражения, анонимные типы, автоматические свойства и многое другое
  • Все аспекты синтаксиса C #, предопределенных типов, выражений и операторов
  • Создание классов, структур, делегатов и событий, перечислений, обобщений и ограничений, обработки исключений и итераторов
  • Тонкости бокса, рабочая перегрузка, ковариация делегата, разрешение метода расширения, переопределение интерфейса, типы Nullable и отмена работы
  • LINQ, начиная с принципов последовательностей, отложенного выполнения и стандартных операторов запросов и заканчивая полной ссылкой на синтаксис запроса, включая несколько генераторов, объединение, группирование и продолжения запроса
  • Использование, запись и анализ пользовательских атрибутов

Я использовал эту книгу (хорошо оригинал), чтобы помочь мне перейти от Java к разработчику C #. Пока я учился, я всегда держал его за столом, и это действительно помогло.

0 голосов
/ 07 апреля 2019

Существует шпаргалка от Microsoft для разработчиков Java, использующих C #:)

0 голосов
/ 20 октября 2008

Используйте Sharpen , чтобы конвертировать ваши Java-программы в C # и увидеть различия.

0 голосов
/ 17 октября 2008

Вот ссылка с синтаксическим сравнением между Java и C # (хотя она почти идентична, есть несколько отличий).

http://www.harding.edu/fmccown/java1_5_csharp_comparison.html

0 голосов
/ 17 октября 2008

Синтаксис языка различен, поэтому я должен прочитать только небольшую ссылку на синтаксис C #. Как простая книга (для опытных программистов) или, может быть, википедия (http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp) скажет достаточно.

Самым большим отличием является библиотека: сайты Asp.Net полностью отличаются от java-сервлетов.

Не много читайте, просто начните программировать!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...