csc /t:library testl.cs csc /t:library test2.cs
Затем необходимо скомпилировать файлtest3.cs,указав в командной строке
csc /г:Asml=testl.dll /г:Asm2=test2.dll test3.cs
Обратите внимание на применение параметра / г, уведомляющего компилятор
о том, что ссылка на метаданные находится в соответствующем файле. В данном случае псевдонимAsmlсвязывается с файломtestl. dll,а псевдонимAsm2— с файломtest2.dll.
В самой программе псевдонимы указываются в приведенных ниже операторах с модификаторомextern,которые располагаются в самом начале файла.
extern alias Asml; extern alias Asm2;
А в методеMain псевдонимы используются для разрешения неоднозначности ссылок на классMyClass.Обратите внимание на следующее применение псевдонима для обращения к классуMyClass.
Asml::MyNS.MyClass
В этой строке кода первым указывается псевдоним, затем оператор разрешения пространства имен, далее имя пространства имен, в котором находится класс с неоднозначным именем, и, наконец, имя самого класса, следующее после оператора-точки. Та же самая общая форма пригодна и для других внешних псевдонимов.
Ниже приведен результат выполнения данной программы.
Конструирование из файла MyClassl.dll.
Конструирование из файла MyClass2.dll.
ЧАСТЬ 2 Библиотека C#
В части II рассматривается библиотека С#. Как пояснялось в части I, используемая в C# библиотека на самом деле является библиотекой классов для среды .NET Framework. Поэтому материал этой части книги имеет отношение не только к языку С#, но и ко всей среде .NET Framework в целом.
Библиотека классов для среды .NET Framework организована по пространствам имен. Для использования отдельной части этой библиотеки, как правило, достаточно импортировать ее пространство имен, указав его с помощью директивы using в исходном тексте программы. Конечно, ничто не мешает определить имя отдельного элемента библиотеки полностью вместе с его пространством имен, но ведь намного проще импортировать сразу все пространство имен.
Библиотека среды .NET Framework довольно обширна, и поэтому ее полное описание выходит за рамки этой книги. (На самом деле для этого потребовалась бы отдельная и довольно объемистая книга!) Поэтому в части II рассматриваются лишь самые основные элементы данной библиотеки, многие из которых находятся в пространстве имен System. Кроме того, в этой части описываются классы коллекций, а также вопросы организации многопоточной обработки и сетей.
ГЛАВА 21 Пространство имен System
ГЛАВА 22 Строки и форматирование
ГЛАВА 23 Многопоточное программирование. Часть первая: основы
ГЛАВА 24 Много] юточное программирование. Часть вторая: библиогека TPL
ГЛАВА 25 Коллекции, перечислители и итераторы
ГЛАВА 26 Сетевые средства подключения к Интернету
ПРИМЕЧАНИЕ
Классы ввода-вывода подробно рассматривались в главе 14.
ГЛАВА 21 Пространство имен System
В этой главе речь пойдет о пространстве именSystem.Это пространство имен самого верхнего уровня в библиотеке классов для среды .NET Framework. В нем непосредственно находятся те классы, структуры, интерфейсы, делегаты и перечисления, которые чаще всего применяются в программах на C# или же считаются неотъемлемой частью среды .NET Framework. Таким образом, пространство именSystemсоставляет ядро рассматриваемой здесь библиотеки классов.