if (end == 10) return false;
phList[end] = newEntry;
end++;
return true;
}
// Найти и возвратить сведения о телефоне по заданному имени,
public T FindByName(string name) {
for (int i = 0; i < end; i++) {
// Имя может использоваться, потому что его свойство Name
// относится к членам интерфейса IPhoneNumber, на который
// накладывается ограничение,
if (phList[i].Name == name) return phList[i];
}
// Имя отсутствует в списке,
throw new NotFoundException();
}
// Найти и возвратить сведения о телефоне по заданному номеру,
public T FindByNumber(string number) {
for (int i = 0; i < end; i++) {
// Номер телефона также может использоваться, поскольку его
// свойство Number относится к членам интерфейса IPhoneNumber,
// на который накладывается ограничение.
if (phList[i].Number == number) return phList[i];
}
// Номер телефона отсутствует в списке,
throw new NotFoundException();
}
// ...
}
// Продемонстрировать наложение ограничения на интерфейс,
class UselnterfaceConstraint {
static void Main() {
// Следующий код вполне допустим, поскольку
//в классе Friend реализуется интерфейс IPhoneNumber.
PhoneList
plist.Add(new Friend("Том", "555-1234", true));
plist.Add(new Friend("Гари", "555-6756", true));
plist.Add(new Friend("Матт", "555-9254", false));
try {
// Найти номер телефона по заданному имени друга.
Friend frnd = plist.FindByName("Гари");
Console.Write(frnd.Name + ": " + frnd.Number);
if (frnd.IsWorkNumber)
Console.WriteLine(" (рабочий)");
else
Console.WriteLine();
}
catch (NotFoundException) {
Console.WriteLine("He найдено");
}
Console.WriteLine();
// Следующий код также допустим, поскольку в классе Supplier
// также реализуется интерфейс IPhoneNumber.
PhoneList
plist2.Add(new Supplier("Фирма Global Hardware", "555-8834"));
plist2.Add(new Supplier("Агентство Computer Warehouse", "555-9256"));
plist2.Add(new Supplier("Компания NetworkCity", "555-2564"));
try {
// Найти наименование поставщика по заданному номеру телефона.
Supplier sp = plist2.FindByNumber("555-2564");
Console.WriteLine(sp.Name + ": " + sp.Number);
}
catch (NotFoundException) {
Console.WriteLine("He найдено");
}
// в классе EmailFriend НЕ реализуется интерфейс IPhoneNumber.
// PhoneList
// new PhoneList
}
}