Вход/Регистрация
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
вернуться

Троелсен Эндрю

Шрифт:

} // end of method SportsCar::TurboBoost

Обратите внимание на то, что для идентификации метода, определенного типом SportsCar, используется лексема .method. Члены-переменные, определенные типом, обозначаются лексемой .field. Напомним, что класс Car определяет набор защищенных данных, например, таких как currSpeed.

.field family int 16 currSpeed

Свойства обозначены лексемой.property. Этот CIL-код описывает открытое свойство CurrSpeed (заметьте, что характеристики read/write свойства обозначаются лексемами .get и .set).

.property instance int16 CurrSpeed {

 .get instance int16 CarLibrary.Car::get_CurrSpeed

 .set instance void CarLibrary.Car::set_CurrSpeed(int16)

} // end of property Car::CurrSpeed

Анализ метаданных типов

Наконец, если вы сейчас нажмете комбинацию клавиш ‹Ctrl+M›, ildasm.exe отобразит метаданные для каждого из типов, имеющихся в компоновочном блоке CarLibrary.dll (рис. 11.8).

Рис. 11.8. Метаданные для типов на CarLibrary.dll

Теперь, после того как мы с вами заглянули внутрь компоновочного блока CarLibrary.dll, мы можем приступить в построению приложений клиента.

Исходный код. Проект CarLibrary размещен в подкаталоге, соответствующем главе 11.

Создание приложения-клиента в C#

Ввиду тот, что все типы CarLibrary были объявлены с ключевым словом public, другие компоновочные блоки способны их использовать. Напомним, что вы можете также объявлять типы с использованием ключевого слова C# internal (именно этот режим доступа в C# используется до умолчанию, когда вы определяете тип без указания public). Внутренние типы могут использоваться только тем компоновочным блоком, в котором они определены. Внешние клиенты не могут ни видеть, ни создавать внутренние типы компоновочных блоков.

Замечание. Сегодня .NET 2.0 предлагает возможность указать "дружелюбные" компоновочное блоки, которые позволяют использовать свои внутренние типы заданным компоновочным блокам. Подробности можно найти в разделе документации .NET Framework 2.0 SDK с описанием класса InternalsVisibleToAttribute.

Для использования открытых типов CarLibrary создайте новый проект консольного приложения C# (CSharpCarClient). После этого добавьте ссылку на Carbibrary.dll на вкладке Browse диалогового окна Add Reference (если вы скомпилировали CarLibrary.dll в Visual Studio 2005, ваш компоновочный блок будет размещен в подкаталоге \Bin\Debug папки проекта CarLibrary). После щелчка на кнопке ОК Visual Studio 2005 поместит копию CarLibrary.dll в папку \Bin\Debug папки проекта CSharpCarClient (рис. 11.9).

Рис. 11.9. Visual Studio 2005 копирует приватные компоновочные блоки в каталог клиента

С этого момента вы можете компоновать приложение-клиент с использованием внешних типов. Модифицируйте свой исходный C#-файл так.

using System;

// Не забудьте 'использовать' пространство имен CarLibrary!

using CarLibrary;

namespace CSharpCarClient {

 public class CarClient {

static void Main(string[] args) {

// Создание спортивной машины.

SportsCar viper = new SportsCar("Viper", 240, 40);

viper.TurboBoost;

// Создание минивэна.

MiniVan mv = new MiniVan;

mv.TurboBoost;

Console.ReadLine;

}

 }

}

Этот программный код очень похож на программный код приложений, создававшихся нами ранее. Единственным отличием является то, что теперь приложение-клиент C# использует типы, определенные в отдельном пользовательском компоновочном блоке. Запустите эту программу, и вы увидите на своем экране целый ряд окон сообщений.

Исходный код. Проект CSharpCarClient размещён в подкаталоге, соответствующем главе 11.

Создание приложения-клиента в Visual Basic .NET

Чтобы продемонстрировать языковую независимость платформы .NET, создадим другое консольное приложение (VbNetCarClient) на этот раз с помощью Visual Basic .NET (рис. 11.10). Создав проект, укажите ссылку на CarLibrary.dll с помощью диалогового окна Add Reference.

Рис. 11.10. Создание консольного приложения Visual Basic .NET

Как и в C#, в Visual Basic .NET требуется указать список всех пространств имен, используемых в текущем файле. Но в Visual Basic .NET для этого предлагается использовать ключевое слово Imports, а не ключевое слово using, как в C#. С учетом этого добавьте следующий оператор Imports в файл программного кода Module1.vb.

  • Читать дальше
  • 1
  • ...
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: