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

}

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

}

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

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

if(phList[i].Number == number) return phList[i];

}

// Номер телефона отсутствует в списке, throw new NotFoundException ();

}

// ...

}

// Продемонстрировать наложение ограничения на интерфейс, class UselnterfaceConstraint { static void Main() {

// Следующий код вполне допустим, поскольку //в классе Friend реализуется интерфейс IPhoneNumber. PhoneList plist = new 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 = new 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 plist3 =

// new PhoneList(); // Ошибка!

}

}

Перейти на страницу:

Похожие книги