Герберт Шилдт - C# 4.0 - полное руководство

Здесь есть возможность читать онлайн «Герберт Шилдт - C# 4.0 - полное руководство» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва -- Киев, Год выпуска: 2011, ISBN: 2011, Издательство: ООО И.Д. Вильямс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# 4.0: полное руководство: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# 4.0: полное руководство»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 4.0: полное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Name = n;

Number = num;

}

// Реализовать интерфейс IPhoneNumber.

public string Number { get; set; }

public string Name { get; set; }

// ...

}

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

class EmailFriend {

// ...

}

// Класс PhoneList способен управлять любым видом списка телефонных

// номеров, при условии, что он реализует интерфейс PhoneNumber.

class PhoneList 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 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 = 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(); // Ошибка!

}

}

В этой версии программы ограничение на интерфейс, указываемое в классе PhoneList, требует, чтобы аргумент типа реализовал интерфейс IPhoneList. А поскольку этот интерфейс реализуется в обоих классах, Friendи Supplier, то они относятся к допустимым типам, привязываемым к типу Т. В то же время интерфейс не реализуется в классе EmailFriend, и поэтому этот класс не может быть привязан к типу Т. Для того чтобы убедиться в этом, удалите символы комментария в двух последних строках кода в методе Main(). Вы сразу же обнаружите, что программа не компилируется.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «C# 4.0: полное руководство»

Представляем Вашему вниманию похожие книги на «C# 4.0: полное руководство» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# 4.0: полное руководство»

Обсуждение, отзывы о книге «C# 4.0: полное руководство» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.