Читаем C# 4.0 полное руководство - 2011 полностью

Во втором применении ключевое слово extern предоставляет псевдоним для внешней сборки, что полезно в тех случаях, когда в состав программы включаются две отдельные сборки с одним и тем же именем элемента. Так, если в сборке testl содержится класс MyClass, а в сборке test2 класс с таким же именем, то при обращении к классу по этому имени в одной и той же программе может возникнуть конфликт.

Для разрешения подобного конфликта необходимо создать псевдоним каждой сборки. Это делается в два этапа. На первом этапе нужно указать псевдонимы, используя параметр компилятора /г, как в приведенном ниже примере.

/г:Asml=testl /г:Asm2=test2

А на втором этапе необходимо ввести операторы с ключевым словом extern, в которых делается ссылка на указанные выше псевдонимы. Ниже приведена форма такого оператора для создания псевдонима сборки.

extern aliasимя_сборки;

Если продолжить приведенный выше пример, то в программе должны появиться следующие строки кода.

extern alias Asml; extern alias Asm2;

Теперь оба варианта классаMyClassбудут доступны в программе по соответствующему псевдониму.

Рассмотрим полноценный пример программы, в которой демонстрируется применение внешних псевдонимов. Эта программа состоит из трех файлов. Ниже приведен исходный текст, который следует поместить в первый файл —testl.cs.

using System;

namespace MyNS {

public class MyClass { public MyClassO {

Console.WriteLine("Конструирование из файла MyClassl.dll.");

}

}

}

Далее следует исходный текст из файлаtest2.cs.

using System;

namespace MyNS {

public class MyClass { public MyClassO {

Console.WriteLine("Конструирование из файла MyClass2.dll.");

}

}

}

Обратите внимание на то, что в обоих файлах,testl. csиtest2 . cs,объявляется пространство именMyNSи что именно в этом пространстве в обоих файлах определяется классMyClass.Следовательно, без псевдонима оба варианта классаMyClassбудут недоступными ни одной из программ.

И наконец, ниже приведен исходный текст из третьего файлаtest3.cs,где используются оба варианта классаMyClassиз файловtestl. csиtest2 . cs.Это становится возможным благодаря операторам с внешними псевдонимами.

// Операторы с внешними псевдонимами должны быть указаны в самом начале файла, extern alias Asml; extern alias Asm2;

using System;

class Demo {

static void Main {

Asml::MyNS.MyClass t = new Asml::MyNS.MyClass ;

Asm2::MyNS.MyClass t2 = new Asm2::MyNS.MyClass;

}

}

Сначала следует скомпилировать файлыtestl. csиtest2 . csв их библиотечные эквиваленты DLL. Для этого достаточно ввести в командной строке следующее.

Перейти на страницу:

Похожие книги

Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT