Введение в теорию программирования. Объектно-ориентированный подход



         

Теория типов и типизация в .NET - часть 3


Чтобы проиллюстрировать применение механизма ликвидации коллизии обозначений типов в пространствах имен среды программирования Microsoft .NET посредством оператора using, приведем развернутый пример на языке программирования C#:

using N1; C1 a; // Имя N1 является неявным N1.C1 b; // Полное имя C2 c; // Ошибка: имя C2 не определено N1.N2.C2 d; // Один из (под)классов C2 C1.C2 e; // Еще один из (под)классов C2 using C1 = N1.N2.C1; using N2 = N1.N2; C1 a; // Соответствует имени N1.N2.C1 N2.C1 b; // Соответствует имени N1.N2.C1

Заметим, что оператор using позволяет использовать типы как с указанием полного имени, так и без него, а также для указания альтернативных имен (alias).

Еще одним аспектом проектирования и реализации крупных программных комплексов под управлением среды Microsoft .NET является потенциальная коллизия имен типов в рамках масштабных проектов.

Для решения этой проблемы в среде разработки программного обеспечения Microsoft Visual Studio для каждого из проектов могут быть указаны так называемые ссылки, каждая из которых идентифицирует уникальную сборку - самодостаточную единицу для компиляции и выполнения в рамках программного проекта.

Ссылки передаются компилятору в ходе трансляции программы на том или ином языке программирования под управлением среды Microsoft .NET по ссылке (при этом используется опция /r или /reference).

Скажем, команда на компиляцию файла HelloWorld с исходным текстом программы на языке C# со ссылкой на пространство имен System.WinForms.dll будет иметь вид:

csc HelloWorld.cs /reference:System.WinForms.dll

Как видно из приведенного примера, механизм ссылок реализует идентификацию сборки для использования в программном проекте.

Подводя итоги обсуждения механизмов управления пространствами имен среды проектирования и реализации программного обеспечения Microsoft .NET, отметим, что пространства имен предоставляют возможность сокращенного именования типов объектов на уровне языка программирования.

Таким образом, устраняется необходимость многократного повторения полного имени объекта и существенно уменьшается риск коллизии обозначений, что значительно экономит трудозатраты при проектировании и реализации сложных программных систем и комплексов.




Содержание  Назад  Вперед