Для создания библиотеки следует при разработке проекта в среде Visual Studio.NET выбрать шаблон Class Library (библиотека классов). В главе 8 была создана простая иерархия классов персонажей компьютерной игры. В этом разделе мы оформим ее в виде библиотеки, то есть сборки с расширением dll. Для сборки задано имя MonsterLib (рис. 12.2).
Рис. 12.2. Создание библиотеки
Текст модуля приведен в листинге 12.1. По сравнению с модулем из главы 8 в него добавлены спецификаторы доступа public для всех трех классов, входящих в библиотеку.
Листинг 12.1. Библиотека монстров
namespace MonsterLib
{
using System;
public abstract class Spirit
{
public abstract void Passport();
public class Monster: Spirit
{
public Monster()
{
this.health = 100;
this.ammo = 100; this.name = "Noname";
}
public Monster(string name)
: this()
{
this.name = name;
}
public Monster(int health, int ammo, string name)
{
this.health = health;
this.ammo = ammo; this.name = name;
}
public int Health
{
get
{
return health;
}
set
{
if (value > 0)
health = value;
else
health = 0;
}
}
public int Ammo
{
get
{
return ammo;
}
set
{
if (value > 0) ammo = value; else ammo = 0;
}
}
public string Name
{
get
{
return name;
}
}
override public void Passport()
{
Console.WriteLine("Monster {0} \t health = {1} ammo = {2}".
name, health, ammo);
}
string name; int health, ammo;
}
public class Daemon: Monster
{
public Daemon()
{
brain = 1;
}
public Daemon(string name, int brain)
: base(name)
{
this.brain = brain;
}
public Daemon(int health, int ammo, string name, int brain)
: base(health, ammo, name)
{
this.brain = brain;
}
override public void Passport()
{
Console.WriteLine(
"Daemon {0} \t health = {1} ammo = {2} rain = {3}".Name,
Health.Ammo, brain);
}
public void Think()
{
Console.Write(Name + " is");
for (int i = 0; i < brain; ++i) Console.Write(" thinking");
Console.WriteLine("...");
}
int brain;
}
}
}
Скомпилировав библиотеку, вы обнаружите файл MonsterLib.dll в каталогах...\bin\ Debug и...\obj\Debug. Открыв файл MonsterLib.dll с помощью программыILDasm.exe, можно получить полную информацию о созданной библиотеке (рис. 12.3).
Рис. 12.3. Просмотр библиотеки с помощью дизассемблера ILDasm.exe