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

StackOverflow https://stackoverflow.com/questions/14775

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

  • VB.NET не имеет анонимных делегатов
  • Небезопасных блоков кода нет в VB.NET

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

Я думаю, что правда в этом случае выйдет наружу:

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

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

Function(x) x.ToString()

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

Я тоже до смерти люблю C #, но различия заключаются не только в синтаксисе.Есть места, где VB выигрывает без РАЗДУМИЙ

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top