Страницы

Поиск по вопросам

четверг, 11 октября 2018 г.

C#. В чем разница между вложенными namespace и namespace, составное имя которых включает в себя точки

Здравствуйте!
Есть 2 файла:
Nesting.cs:
namespace Demo { namespace NestingNS { class Nesting { } } } NoNesting.cs
namespace Demo.NoNestingNS { class NoNesting { } }
В первом файле пространства имен вложены друг в друга, во втором - пространство имен имеет составной идентификатор (если его так можно назвать).
Вопрос 1: В чем разница между данными объявлениями (кроме названий классов и пространств имен)? Или 2-ой случай - это некое подобие синтаксического сахара, которое разворачивается в 1-ый случай?
Вопрос 2: В каких случаях лучше использовать первое объявление и в каких второе?


Ответ

Это синтаксический сахар. Если вы пишете очень большую программу или библиотеку вы можете хотеть чтобы ваш проект описывало пространство Security, но так, чтобы пользователь знал что оно лежит в System. Чтобы сохранить удобную иерархию, чтобы пользователь (другой программист) мог даже без документации посмотреть какие разделы есть в вашей библиотеке.

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

Отправить комментарий