Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Объявление класса и namespace |
Автор: Rickert 29.4.2008, 05:41 |
Зачем люди всё время, создавая новый класс его суют в namespace? В C++ - это вообще крайность, для объединения глобальных функций для конкретного класса или других случаев. Зачем это делать постоянно? |
Автор: Walker 29.4.2008, 06:50 |
Логическая группировка, разрешение конфликтов имён... |
Автор: Rickert 29.4.2008, 06:56 |
Walker, Зачем огород городить: для каждого класса? Например, у меня сейчас, в проекте от этого только проблемы, потому что есть System.Drawing.Point и так же в либе, которую я использую есть Point, у результате конфликт. Надо разбираться с этими using'ами. Вы мне скажите: может есть ещё какие-то причины совать всё по namespace'м? |
Автор: mr.DUDA 29.4.2008, 08:43 | ||
Не нравится - можно объявить класс без namespace и жить с этим. Конфликт с двумя Point решается через объявление алиаса:
Юзинг по необходимости добавить элементарно: пишешь имя класса, жмёшь Shift+Alt+F10 (или мышкой по смарт-тегу внизу-справа имени класса) и выбираешь нужный юзинг, он добавится вверху исходника автоматически. Не нужно ни в чём лазить, искать где там тот или этот класс. Неймспейсы удобны тем что позволяют логически сгруппировать набор классов, енумов и структур в подмножество среди всех классов доступных в проекте и референсах. Если бы все классы были свалены в одну кучу, то (кроме конфликтов) стал бы неюзабельным IntelliSense. Наконец, по юзингам вверху исходника можно примерно сориентироваться какие подсистемы были использованы в коде внизу (например System.IO говорит что мы тут поработали с файлами, а System.Windows.Forms - что юзаем формы и контролы и т.п.). Коммерческие библиотеки, опять же, все классы объявляют в одном крупном или крупном и нескольких вложенных неймспейсах по имени компании или продукта, что удобно. В С++ мало используют пространства имён чисто по привычке, ИМХО. Хотя есть и обратный пример - boost. |
Автор: Rickert 29.4.2008, 11:26 |
mr.DUDA, solved ![]() |