Иллюстрированный самоучитель по Architecture .NET

Программа Hotel (Гостиница)

Приведенный код компилируется затем в сборку NET, называющуюся Hotel.dll Это можно сделать в Visual Studio NET, а можно – с помощью командной строки Если вы используете командную строку, то должны определить соответствующее окружение Простейший способ сделать это – открыть командное окно, выбрав пункты меню Start (Пуск) › Programs (Программы) › Microsoft Visual Studio NET 7 › Visual Studio NET Tools › Visual Studio NET Command Prompt. В командной строке, приведенной ниже, компилируется исходный файл Hotel.cpp:

cl /CLR Hotel.cpp /LD

Параметр /LD указывает, что компоновщик должен создать динамически подключаемую библиотеку (DLL), а не ЕХЕ-файл Класс Hotel (Гостиница) содержит частные (private) данные, два конструктора для инициализации данных и несколько общедоступных (public) методов.

Для того чтобы продемонстрировать возможность использования в NET разных языков, следующая программа, которая тестирует созданный ранее компонент Hotel (Гостиница), реализована на С#. Можно либо самостоятельно ее реализовать с использованием Visual Studio NET, либо просто открыть готовое решение, находящееся в папке HotelRes\TestHotel. Для создания программы необходимо создать проект консольного приложения на С# (С# Console Application) TestHotel, добавить исходный код, затем ссылку на сборку Hotel (Гостиница), после чего скомпилировать и запустить программу.

Создание консольного приложения на С# (С# Console Application)

Создайте проект консольного приложения С#, называющийся TestHotel:

  1. Откройте Visual Studio NET
  2. Выберите пункт меню File › New › Project (Файл › Создать › Проект) для того чтобы вызвать диалог New Project (Создание проекта).
  3. Выберите в списке Project Type (Тип проекта) Visual C# Projects (Проекты на Visual C#).
  4. Выберите в списке Template (Шаблон) Console Application (Консольное приложение)
  5. Введите "TestHotel" в поле Name (Название)
  6. Задайте папку, в которой будет сохранен проект
  7. Щелкните на кнопке ОК для того чтобы закрыть диалог New Project (Создание проекта) и создать проект.
    Добавьте исходный код:
  8. Щелкните правой кнопкой на файле Class.cs в окне Solution Explorer (Поиск решения) и выберите в меню пункт Rename (Переименовать)
  9. Введите новое имя исходного файла – TestHotel.cs
  10. Дважды щелкните на файле TestHotel.cs в окне Solution Explorer (Поиск решения) для того чтобы открыть файл для редактирования.
  11. Добавьте в файл TestHotel.cs соответствующий исходный код.
    Добавьте ссылку на сборку Hotel (Гостиница):
  12. Выберите пункт меню Project › Add Reference (Проект › Добавить ссылку).
  13. Щелкните на кнопке Browse (Обзор)
  14. Найдите папку, в которой хранится сборка Hotel (Гостиница).
  15. Дважды щелкните на сборке Hotel.dll.
  16. Щелкните на кнопке ОК.
    Скомпилируйте и запустите проект:
  17. Выберите пункт меню Build › Build (Сборка › Собрать)
  18. Нажмите сочетание клавиш CTRL + F5 для запуска программы без отладчика.
//TestHotel.cs
using System;
JI использование Системы;
public class TestHotel
// общедоступный класс TestHotel
public static void Main()
{
Hotel generic = new Hotel (); // универсальная новая
// Гостиница
ShowHotel (generic); // универсальная
Hotel ritz = new Hotel("Atlanta", "Ritz", 100, 95);
// Роскошная гостиница = новая Гостиница
// ("Атланта", "Роскошь", 100, 95),
ShowHotel(ritz);
ritz.RaisePrice(50m);
ritz.SetNumber(125);
ShowHotel(ritz);
; }
private static void ShowHotel (Hotel hotel)
// частный статический
ShowHotel (Гостиница гостиница)
{
Console.WriteLine(
"{0} {1}: number = {2}, rate = {3:C}",
hotel.GetCity(), hotel.GetName(), // гостиница
hotel.GetNumber(), hotel.GetRate()); // гостиница
}
}

Обратите внимание, что Visual Studio автоматически копирует Hotel.dll в ту же папку, в которую помещает файл TestHotel.exe. Так происходит потому, что в проект С# была добавлена ссылка на данную сборку. Это удобно, ведь если запустить программу-клиент, а общеязыковая среда выполнения CLR не найдет соответствующей сборки, возникнет исключение времени выполнения. Приведем строки, выведенные на экран программой, созданной на С# с компонентом на C++:

number = 50, rate = $0.00
Atlanta Ritz: number = 100, rate = $95.00
Atlanta Ritz: number = 125, rate = $96.00
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.