![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Gunslinger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
Будут ли доступны классы пространства имен А, если оно указано вне пространства имен моего кода?
Или писать using A; внутри namespace В? Это сообщение отредактировал(а) Gunslinger - 25.2.2010, 20:09 |
|||
|
||||
CasperSC |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 27.11.2009 Репутация: нет Всего: 1 |
Если написать "А" там где оно у тебя написано в примере, то оно будет доступно в "Б":
То же самое:
Так вот MessageBox.Show("Привет!"); доступен в таком виде из-за подключеного выше using System.Windows.Forms; Если не подключен, то доступ к нему осуществлялся бы так: System.Windows.Forms.MessageBox.Show("Привет!"); |
|||
|
||||
Gunslinger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
using X; перед namespace -- типа доступ к классам Х всех namespaceов файла, а using X; внутри namespace -- доступ к классам Х только внутри данного неймспейса и его поднеймспейсов?
|
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
||||
|
||||
Linus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: нет Всего: 4 |
Думаю, правильнее писать юзинги выше нэймспейсов. Классы обычно живут в отдельных файлах. Если я пишу юзинги выше нэймспейса, я подчеркиваю, что он распространяется на текущий файл. Если внутри - я подчеркиваю (ошибочное) то, что юзинги распространяются на текущий нэймспейс (т.е. >= 1 file), так как он их аггрегирует (хоть это и невозможно, но сама вложенность об этом говорит). Плюс, если писать using внутри нэймспэйса, то можно использовать сокращенную форму юзингов (без первой части). Это усложняет чтение и понимание кода. Суммируя всё вышесказанное, я полагаю, что юзинги нужно использовать только выше нэймспейсов.
|
|||
|
||||
Ram1reS |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 25.4.2008 Где: Москва Репутация: 2 Всего: 5 |
Microsoft Style Cop считает, что using должны быть внутри namespace.
--------------------
|
|||
|
||||
Linus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: нет Всего: 4 |
К тому же, Castle тоже так считают... Только какими ценностями и принципами руководствуются они при этом - не ясно. А пока не ясно, то придерживаться такого стиля, думаю, глупо.
|
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
Linus, неясно - это теперь сокращение для "я не нажимал F1 на строчке с ошибкой"?
![]() вот онлайновый вариант хелпа: http://www.thewayithink.co.uk/stylecop/sa1200.htm |
|||
|
||||
Gunslinger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
Об этом моменте не подумал. Вас не понял: если неймспейс состоит из нескольких файлов, то using внутри namespace A в одном файле будет распространяться на тот же namespace A в другом файле? з.ы. практику разделения один класс=один файл знаю в ActionScript3. В .NET что, так же? |
|||
|
||||
KelTron |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 11 Всего: 38 |
Нет
Ну это типа правило хорошего тона, для каждого класса свой файл, причём название файла совпадает с именем класса. Хотя это не обязательно, называть файл можно как угодно, в один файл можно помещать много классов или один класс разбивать на несколько файлов.. Это сообщение отредактировал(а) KelTron - 9.3.2010, 07:37 -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
||||
|
|||||
Gunslinger |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 842 Регистрация: 30.12.2006 Где: Астрахань Репутация: нет Всего: 3 |
Ок.
|
|||
|
||||
Linus |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.8.2006 Где: Украина Репутация: нет Всего: 4 |
PashaPash, это значит, что на данный момент не юзаю StyleCop
![]() Из описания стало ясно, какие проблемы решает помещение юзингов вовнутрь нэймспейсов:
В первом случае, чтобы не напороться на одинаковые имена классов, нам всё равно приходится "предугадывать" такие ситуации и явно прописывать алиасы "using Guid=System.Guid". И, всё же, думаю это классный кейс "за" использование юзингов внутри namespaces. А второй кейс, думаю, бестолковый, напрочь убивается, если писать каждый класс в отдельных файлах. А минусы привел выше. |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 9 Всего: 49 |
Linus, основной минус - в стандартных студийных шаблонах юзинг написан вне неймспейса
![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |