#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:
-
Это недоступно в C #. Если вы хотите добавить событие, вы можете сделать это из конструктора. Сначала выберите элемент управления, просмотрите события элемента управления в диалоговом окне свойств, а затем дважды щелкните имя события, чтобы создать исходный код.
-
Это сделано специально. Папки в вашем пространстве имен по сути рассматриваются как иерархии.
Извините, что вы разочарованы, но поверьте мне, есть много преимуществ в изучении C # по сравнению VB.NET .
Комментарии:
1. Я изначально специалист по C #, поэтому привык делать это раньше, но мне пришлось перейти на vb.net некоторое время (из-за моей работы), но теперь я вернулся на борт и привык к потреблению времени (в основном, к первому пункту), поэтому задавался вопросом, возможно ли это. Очевидно, что нет 🙁
2. «Извините, что вы расстроены, но поверьте мне, есть много преимуществ в изучении C # по сравнению VB.NET .» … Я бы сказал, что есть только один, и это немного более высокая рыночная стоимость работы. В противном случае они достаточно близки к кодированию в том, что вы предпочитаете лучше.
3. Вы правы. Различия незначительны и уменьшаются с выпуском. Рыночная стоимость — это преимущество № 1, о котором я думал. Я бы также сказал, что C # больше похож на JavaScript и функциональное программирование, поэтому изучение C # даст вам преимущество в этой области.