2 простых и быстрых вопроса, специфичных для C # Visual Studio?

#c# #vb.net #visual-studio #visual-studio-2010

#c# #vb.net #visual-studio #visual-studio-2010

Вопрос:

На самом деле, я пробовал поискать в Google и с помощью инструментов Visual Studio, но, похоже, мне не повезло, поэтому я знаю, что получу быстрый ответ здесь!

Я разрабатывал в vb.net некоторое время я использовал Visual studio и только что вернулся к c #, и меня раздражают некоторые вещи, которые, я уверен, просто нужно где-то установить или снять флажок.

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

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

Например

У MyProject есть пространство имен MyProject

MyProject -> MyFolder -> MyClass имеет пространство имен MyProject.Моя папка….

Извините за возмутительно простой вопрос.

С уважением

Ответ №1:

1) C # и VB обрабатывают подписки на обработчики событий совершенно по-разному, поэтому в C # нет прямого эквивалента этому. Вы можете сделать это, переключившись на вкладку события окна свойств и дважды щелкнув событие, которое вы хотите обработать (в режиме конструктора). В представлении кода просто введите «MyControl.EventIWantToHandle =» а затем дважды нажмите tab, который сгенерирует для вас метод обработки событий. Лучшее место для этого, скорее всего, в конструкторе, прямо под вызовом InitializeComponent.

2) Выделите папку в обозревателе решений и в окне свойств установите для свойства NamespaceProvider значение false*

* На самом деле структура папок должна соответствовать структуре пространства имен — C # помогает вам в этом (я немного удивлен, что VB этого не делает)

Комментарии:

1. Меня просто раздражает, когда я получаю доступ к своей бизнес-логике и должен использовать MyBusinessLogic.Management, MyBusinessLogic. EventSystem, MyBusinessLogic. Электронная коммерция, MyBusinessLogic. Статья и т.д. Я просто хочу добавить MyBusinessLogic, а затем вызвать мои классы manager в коде. Я вижу, как это пригодится в очень больших проектах, но я думаю, что я разделил свои проекты на уровни соответствующего размера, поэтому они мне не нужны.

2. @ThePower это указывает на одну из двух потенциальных проблем, связанных с тем, как вы отделили свой проект. Возможно, ваши пространства имен слишком детализированы и могут быть объединены вместе, или у вас слишком много ссылок между пространствами имен. С другой стороны, возможно, вам просто нужно написать фасадный интерфейс для всего вашего бизнес-уровня.

3. Я не согласен с пунктом # 1 … IDE может так же легко сгенерировать для вас код события из code view в C #, как и в VB. Очевидно, что сгенерированный код будет немного отличаться из-за синтаксиса языка.

4. @tcarvin Я понимаю вашу точку зрения, но это было бы не так просто, поскольку в окне просмотра кода потребуется изменить файл, сгенерированный дизайнером (который принадлежит designer view). Наличие двух представлений, изменяющих сгенерированный код, представляет проблему. В VB это не проблема, поскольку подписка на обработчик событий находится в том же самом файле кода (не в сгенерированном коде).

5. IDE для C # помещает код как в файл пользователя, так и в файл конструктора, когда вы используете редактор свойств и получаете доступ к событиям. Я думаю, MS могла бы выяснить, как вызвать точно такую же функциональность из другого окна 🙂 Я подозреваю, что это просто MS пытается придать каждому языку свой «вкус»

Ответ №2:

  1. Это недоступно в C #. Если вы хотите добавить событие, вы можете сделать это из конструктора. Сначала выберите элемент управления, просмотрите события элемента управления в диалоговом окне свойств, а затем дважды щелкните имя события, чтобы создать исходный код.

  2. Это сделано специально. Папки в вашем пространстве имен по сути рассматриваются как иерархии.

Извините, что вы разочарованы, но поверьте мне, есть много преимуществ в изучении C # по сравнению VB.NET .

Комментарии:

1. Я изначально специалист по C #, поэтому привык делать это раньше, но мне пришлось перейти на vb.net некоторое время (из-за моей работы), но теперь я вернулся на борт и привык к потреблению времени (в основном, к первому пункту), поэтому задавался вопросом, возможно ли это. Очевидно, что нет 🙁

2. «Извините, что вы расстроены, но поверьте мне, есть много преимуществ в изучении C # по сравнению VB.NET .» … Я бы сказал, что есть только один, и это немного более высокая рыночная стоимость работы. В противном случае они достаточно близки к кодированию в том, что вы предпочитаете лучше.

3. Вы правы. Различия незначительны и уменьшаются с выпуском. Рыночная стоимость — это преимущество № 1, о котором я думал. Я бы также сказал, что C # больше похож на JavaScript и функциональное программирование, поэтому изучение C # даст вам преимущество в этой области.