Я хорошо знаю Java. Какие предостережения и ресурсы помогут мне перейти на другую сторону (С#) настолько безболезненно, насколько это возможно.
Как перейти с Java на С#?
Ответ 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-сервлетов.
Не читайте много, просто запустите программирование!
Ответ 7
Здесь ссылка, которая имеет синтаксическое сравнение между Java и С# (хотя это почти идентично, есть несколько отличий).
http://www.harding.edu/fmccown/java1_5_csharp_comparison.html
Ответ 8
Используйте Sharpen, чтобы преобразовать ваши Java-программы в С# и увидеть различия.
Ответ 9
Я знаю, что хороший ответ уже принят. Однако я хотел бы добавить дополнение...
Я нахожу, что изучение нового языка обычно подразумевает изучение тонких синтаксических различий... особенно при работе с разницей между языками в семействе C/С++/Java/С#.
В дополнение к хорошему толстому справочнику я рекомендую получить ссылку на карман, например С# 3 Pocket Reference от O'Reilly. Это не поможет вам с шаблонами дизайна и т.д., Но даст очень быструю ссылку на конкретные отличия используемого вами языка.
Вот краткое описание этой книги с этого сайта:
С# 3.0 Pocket Reference содержит множество иллюстраций и примеров кода для объяснения:
- Новые функции для С# 3.0, такие как лямбда-выражения, анонимные типы, автоматические свойства и т.д.
- Все аспекты синтаксиса С#, предопределенные типы, выражения и операторы
- Создание классов, структур, делегатов и событий, перечислений, генериков и ограничений, обработка исключений и итераторы
- Тонкости бокса, операционная перегрузка, ковариация делегатов, разрешение метода расширения, повторная реализация интерфейса, типы с нулевыми значениями и рабочий подъем.
- LINQ, начиная с принципов последовательностей, отложенного исполнения и стандартных операторов запросов и заканчивая полной ссылкой на синтаксис запроса, включая несколько генераторов, объединение, группирование и продолжения запросов
- Потребление, запись и отражение пользовательских атрибутов
Я использовал эту книгу (ну оригинал), чтобы помочь мне перейти от Java к разработчику С#. Пока я учился, я все время держал его за столом, и это действительно помогало.
Ответ 10
Там есть шпаргалка от Microsoft для разработчиков Java, использующих С# :)