Подтвердить что ты не робот

Как перейти с Java на С#?

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Посмотрите эту замечательную статью на С# с Перспективы Java Developer. Он имеет несколько сведений о том, что можно сделать с обеих сторон, чтобы избежать минимальных накладных расходов. Имея пример как на том языке, который вы знаете, так и на языке, который вы хотите изучить, достаточно усложняет кривую обучения.

Ответ 3

Об этом я уже подробно рассказал. См. Следующие темы.

Я не хочу закрывать его, потому что он не кажется "точным" дубликатом, и мне нравится, что Джон отвечает на этот вопрос.

Ответ 4

  • Установите Visual Studio 2008 и Resharper с привязками клавиш IntelliJ IDEA. Это дает вам указания на включение пространств имен, если вы начнете их использовать.
  • Запустите новый проект и начните писать код Java, когда вы столкнетесь с чем-то, что не работает должным образом, или он не может найти класс, который вы пытаетесь использовать Google PrintLn в С#.
  • Напишите тесты или фрагменты кода для проверки работоспособности, например, вы можете проверить, работает ли == для строк (это делает)
  • понимают, что С# alias Типы данных (int - это псевдоним для System.Int32, строка для System.String)
  • посмотрите на код других людей. Я рекомендую JP Boodhoos Google code
  • Возьмите работу на С#, там много заданий, требующих как Java, так и С#, особенно в поддержке.
  • Знайте свои библиотеки, большинство библиотек Java были портированы и большую часть времени это имя похоже (Hibernate = > NHibernate) или (Xstream = > Xstream.Net). Не у каждой библиотеки есть очевидное имя, поэтому просто начинайте изучать случайные, о которых вы слышите. т.е. (Rhino.Mocks, HTMLAgilityPack, MBUnit, Rhino.Commons, Castle Project).
  • Перейдите к собраниям в группе, найдите DNUG (Dot Net User Group), они будут полезны, и вы можете получить хороший совет.

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 8

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

Ответ 9

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

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

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

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

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

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

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

Ответ 10

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