}

// Интерфейс, поддерживающий имя и номер телефона, public interface IPhoneNumber {

string Number { get; set;

}

string Name { get; set;

}

}

// Класс для телефонных номеров друзей.

//В нем реализуется интерфейс IPhoneNumber. class Friend : IPhoneNumber {

public Friend(string n, string num, bool wk) {

Name = n;

Number = num;

IsWorkNumber = wk;

}

public bool IsWorkNumber { get; private set; }

// Реализовать интерфейс IPhoneNumber. public string Number { get; set; } public string Name { get; set; }

// ...

}

// Класс для телефонных номеров поставщиков, class Supplier : IPhoneNumber {

public Supplier(string n, string num) {

Name = n;

Number = num;

}

// Реализовать интерфейс IPhoneNumber. public string Number { get; set; } public string Name { get; set; }

// ...

}

// В этом классе интерфейс IPhoneNumber не реализуется, class EmailFriend {

// ...

}

// Класс PhoneList способен управлять любым видом списка телефонных // номеров, при условии, что он реализует интерфейс PhoneNumber. class PhoneList<T> where T : IPhoneNumber {

T[] phList; int end;

public PhoneList() { phList = new T[10]; end = 0;

}

public bool-Add(T newEntry) { if(end == 10) return false;

phList[end] = newEntry; end++;

return true;

}

// Найти и возвратить сведения о телефоне по заданному имени, public Т FindByName(string name) {

for(int i=0; i<end; i++) {

// Имя может использоваться, потому что его свойство Name // относится к членам интерфейса IPhoneNumber, на который // накладывается ограничение, if(phList[i].Name == name) return phList[i];

}

// Имя отсутствует в списке, throw new NotFoundException();

}

// Найти и возвратить сведения о телефоне по заданному номеру, public Т FindByNumber(string number) { for(int i=0; i<end; i++)    {

// Номер телефона также может использоваться, поскольку его // свойство Number относится к членам интерфейса IPhoneNumber, // на который накладывается ограничение.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату