Интервью на C # и VB.net сходства / различия [закрыто]

Я был разработчиком VB.net уже несколько лет, но сейчас я обращаюсь к нескольким компаниям, которые используют C #. Мне даже сказали, что по крайней мере одна из компаний не хочет разработчиков VB.net.

Я искал в Интернете, пытаясь найти реальные различия между ними, и спросил о Crackoverflow. Единственными существенными отличиями являются некоторые синтаксические различия, которые для меня тривиальны, потому что я также являюсь разработчиком Java.

Что будет хорошим ответом для интервьюера, когда он скажет мне, что ищет разработчика на C # - или подобные вопросы?

18.08.2008 15:11:40
8 ОТВЕТОВ
РЕШЕНИЕ

Мне приходилось брать интервью у людей на несколько позиций C #, и это мой общий совет для разработчиков VB.Net, берущих интервью на должность C #:

  • Убедитесь, что вы ясно, что вы работали VB.Net. Это кажется очевидным, но это, по-видимому, не так (по моему опыту).
  • Попробуйте дать пример кода, если это возможно. Я видел несколько ужасных VB.Net (и C #), написанных программистами VB, которые, кажется, не многому научились при переходе на .Net.
  • Уметь писать на C # во время собеседования, если его попросят. Я знаю, что между ними не так много различий, но я не хочу платить вам за изучение нового синтаксиса.

По вашему конкретному вопросу: я задавал этот тип вопросов раньше, и я хотел услышать о том, насколько базовая система и структура одинаковы. Если возможно, поговорите о сборке мусора, IDisposable, финализаторах, опасностях небезопасных блоков кода, стеке против кучи и т. Д. Все эти вещи показывают, что вы действительно понимаете тонкости инфраструктуры .Net. Правильно или нет, наследие VB приносит с собой ожидание отсутствия понимания программирования более низкого уровня и окон в целом (что, как ни странно, у разработчика на c ++ будет ac # developer ... и так далее).

Наконец, то, как вы формируете свой опыт, может изменить мир к лучшему. Если вы позиционируете себя как разработчик .Net, а не как VB.Net или C #, глупый, псевдорелигиозный подшучиватель может не вступить в разговор. Это, конечно, требует, чтобы вы на самом деле знали как VB.Net, так и C # во время собеседования, но это хорошая политика.

Дело в том, что если вы обнаружите, что собеседник, который вас опрашивает, списывает вас со счетов просто потому, что вы ранее работали в VB.Net, скорее всего, это не то место, в котором вы хотите работать.

9
18.08.2008 16:18:29

Я думаю, что правда будет об этом:

Я разработчик программного обеспечения, синтаксис языка является последней частью головоломки. Используя меня, вы получаете кого-то с очевидным опытом решения проблем и логики. У меня есть опыт работы со средой .NET, CLR и связанным стеком Windows, включая SQL и сервер Windows. Я не знаю синтаксиса C #, но я привык к объектно-ориентированному подходу, и у меня не возникнет проблем с полным освоением тонкостей синтаксиса в течение пары недель. Из этих примеров моего кода видно, что я опытный разработчик, и уверяю вас, что переход будет плавным. Я уже начал изучать язык, у меня до сих пор не было проблем.

2
18.08.2008 15:15:31

Некоторые различия (которые более существенны, чем синтаксические), которые иногда меня устраивают:

  • VB.NET не имеет анонимных делегатов
  • Блоки небезопасного кода отсутствуют в VB.NET
3
18.08.2008 15:19:40
В VB есть анонимные делегаты, это просто еще один термин для анонимных функций. Чего нет у VB - это анонимных подпрограмм. Все анонимные делегаты в VB должны возвращать значение.
Jonathan Allen 9.09.2008 08:25:32
Только в VB v9 +. Этот комментарий был со ссылкой на VB v8.
DAC 4.09.2009 07:16:10

Правдиво? Если вы тоже Java-разработчик, я бы покончил с этим. Разработчик Java с некоторым опытом в .NET, как правило, производит лучшее впечатление, чем разработчик VB с опытом работы с Java. Если вы можете ответить на вопросы о разнице между .NET и Java, вы должны быть в хорошей форме.

Я также рекомендую вам изучить синтаксис C # как можно скорее. Если у вас есть опыт работы с VB и Java, это не займет много времени.

У многих разработчиков есть проблемы с VB и людьми, которые его используют. Действительно или нет, вам придется иметь дело с этой реальностью.

1
18.08.2008 15:38:40

Я люблю C # до смерти, но я завидую необязательным параметрам VB.NET. Автоматизация офиса в C # очень, очень болезненная.

3
18.08.2008 15:43:23
C # 4.0 принесет дополнительные параметры и динамическую типизацию для COM в миксе, что сделает вещи намного менее болезненными.
Greg Beech 27.01.2009 08:46:04

@DAC - VB теперь (в .net3.5) поддерживает лямбды:

Function(x) x.ToString()

В одном из интервью я бы сказал, что понимание CLR и того, что на самом деле делает код, - вот что важно, и что вы счастливы программировать в любом из них (при условии, что это так).

2
18.08.2008 15:47:44
Да и нет. VB имеет анонимные функции, но не анонимные подпрограммы. Поскольку обработчики событий всегда являются подпрограммами, разработчики VB здесь упускают.
Jonathan Allen 9.09.2008 08:27:02

VB или C # оба синтаксиса только разные, но если вы применяете логику, то же самое.

0
27.01.2009 07:17:11

Я также до смерти смертник, но различия не только в синтаксисе. Есть места, где VB выигрывает HANDS

  1. Необязательные параметры
  2. Позднее связывание

Работа с COM из C # может быть очень неприятным делом. (Что не сказать невозможно!)

2
27.01.2009 07:29:26