Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Тут можно читать онлайн Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2007
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    ISBN 5-8459-1124-9
  • Рейтинг:
    3.2/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать книгу онлайн бесплатно, автор Эндрю Троелсен
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

ICollection Keys { get; }

ICollection Values { get; }

void Add(object key, object value);

void Clear();

bool Contains(Object key);

IDictionaryEnumerator GetEnumerator() ;

void Remove(object key);

}

Интерфейс IDictionaryEnumerator

При внимательном чтении вы могли заметить, что IDictionary.GetEnumerator() возвращает экземпляр IDictionaryEnumerator. Тип IDictionaryEnumerator – это строго типизованный нумератор, расширяющий IEnumerator путем добавления следующей функциональной возможности.

public interface IDictionaryEnumerator: IEnumerator {

// Методы IEnumerator…

DictionaryEntry Entry { get; }

object Key { get; }

object Value { get; }

}

Обратите внимание на то, что IDictionaryEnumerator обеспечивает возможность перечисления элементов словаря с помощью общего свойства Entry, которое возвращает тип класса System.Collections.DictionaryEntry. Кроме того, вы можете выполнить цикл по парам имен и значений, используя свойства Key/Value.

Интерфейс IList

Последним из ключевых интерфейсов System.Collections является интерфейс IList, который обеспечивает возможность вставки, удаления и индексирования элементов контейнера.

public interface IList: ICollection, IEnumerable {

bool IsFixedSize { get; }

bool IsReadOnly { get; }

object this[int index] { get; set; }

int Add(object value);

void Clear();

bool Contains(object value);

int IndexOf(object value);

void Insert(int index, object value);

void Remove(object value);

void RemoveAt(int index);

}

Классы из пространства имен System.Collections

Еще раз подчеркнем, что интерфейсы остаются бесполезными до тех пор, пока они не реализованы соответствующим классом или соответствующей структурой. В табл. 7.3 предлагаются описания основных классов из пространства имен System.Collections вместе с ключевыми интерфейсами, которые этими классами поддерживаются.

Таблица 7.3. Классы System.Collections

Класс Описание Реализуемые интерфейсы
ArrayList Представляет динамически изменяемый по размерам массив объектов IList, ICollection, IEnumerable, ICloneable
Hashtable Представляет коллекцию объектов, идентифицируемых по числовому ключу. Пользовательские типы, хранимые в Hashtable, должны обязательно переопределять System.Object.GetHashCode() IDictionary, ICollection, IEnumerable, ICloneable
Queue Представляет стандартную очередь FIFO (first-in, first-out – первым прибыл, первым обслужен) ICollection, ICloneable, IEnumerable
SortedList Подобен словарю, но здесь элементы могут быть также доступны по позиции (например, по индексу) IDictionary, ICollection, IEnumerable, ICloneable
Stack Очередь LIFO (last-in, first-out – последним прибыл, первым обслужен), обеспечивающая функциональные возможности стека ICollection, ICloneable, IEnumerable

Вдобавок к этим ключевым типам в System.Collections определяются некоторые менее значительные (в смысле частоты использования) "игроки", такие как BitArray, CaseInsensitiveComparer и CaseInsensitiveHashCodeProvider. Кроме того, это пространство имен определяет небольшой набор абстрактных базовых классов (CollectionBase, ReadOnlyCollectionBase и DictionaryBase), которые могут использоваться для построения строго типизованных контейнеров.

Экспериментируя с типами System.Collections, вы обнаружите, что все они "стремятся" использовать общие функциональные возможности (в этом и заключается суть программирования на основе интерфейсов). Поэтому вместо описания всех членов каждого класса коллекции задачей нашего обсуждения будет демонстрация возможностей взаимодействия с тремя главными типами коллекций - ArrayList. Queue and Stack. Освоив функциональные возможности этих типов, вы без особого труда сможете прийти к пониманию и остальных классов коллекций (особенно если учесть что в файлах справки предлагается исчерпывающая документация для каждого из типов).

Работа с типом ArrayList

Тип ArrayList непременно станет для вас наиболее часто используемым типом пространства имей System.Collections, поскольку он позволяет динамически переопределять размеры содержимого. Для иллюстрации базовых возможностей этого типа предлагаем вам рассмотреть следующий программный код, в котором ArrayList используется для манипуляций с набором объектов Car.

static void Main(string[] args) {

// Создание ArrayList и заполнение исходными значениями.

ArrayList carArList = new ArrayList();

carArList.AddRange(new Car[] {new Car("Fred", 90 , 10), new Car("Mary", 100, 50), new Car("MB", 190, 11)});

Console.WriteLine("\nЭлементов в carArList: {0}", carArList.Count);

// Печать текущих значений.

foreach(Car с in carArList) Console.WriteLine("Имя автомобиля: {0}", c.petName);

// Вставка нового элемента.

Console.WriteLine("\n-›Добавление нового Car.");

carArList.Insert(2, new Car("TheNewCar", 0, 12));

Console.WriteLine("Элементов в carArList: {0}", carArList.Count);

// Получение массива объектов из ArrayList и снова печать.

object[] arrayOfCars = carArList.ToArray();

for (int i = 0; i ‹ arrayOfCar.Length; i++) {

Console.WriteLine("Имя автомобиля: {0}", ((Car) arrayOfCars[i]).petName);

}

}

Здесь для добавления в коллекцию ArrayList набора типов Car используется метод AddRange() (который, по сути, заменяет n-кратный вызов метода Add()). После вывода информации о числе элементов в коллекции (и после цикла по всем элементам для получения имен) вызывается метод Insert(). Как видите, Insert() позволяет осуществить вставку нового элемента в заданную позицию ArrayList. Обратите внимание на вызов метода ToArray(), который возвращает общий массив типов System.Object на основе содержимого оригинального ArrayList. На рис. 7.13 показан соответствующий вывод.

Рис 713 Забавы с SystemCollectionsArrayList Работа с типом Queue Тип - фото 105

Рис. 7.13. Забавы с System.Collections.ArrayList

Работа с типом Queue

Тип Queue (очередь) – это контейнер, гарантирующий размещение элементов по правилу "первым прибыл – первым обслужен". К сожалению, люди сталкиваются с очередями повсеместно: очереди в банке, кинотеатре, по утрам к автомату, продающему кофе, и т.д. При моделировании сценариев, в которых элементы обрабатываются по правилу очереди, на помощь приходит System.Collections.Queue. Вдобавок к функциональным возможностям, обеспечиваемым поддерживаемыми интерфейсами, Queue определяет ряд членов, описанных в табл. 7.4.

Таблица 7.4.Члены типа Queue

Член Описание
Dequeue() Возвращает объект, находящийся в начале Queue, с одновременным его удалением
Enqueue() Добавляет объект в конец Queue
Peek() Возвращает объект, находящийся в начале Queue, без его удаления

Чтобы проиллюстрировать возможности этих методов, снова используем нашу автомобильную тему и построим объект Queue, моделирующий очередь автомобилей перед въездом на мойку. Во-первых, предположим, что у нас есть следующий вспомогательный статический метод.

public static void WashCar(Car с) {

Console.WriteLine("Моется {0}", с.petName);

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

Интервал:

Закладка:

Сделать


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание отзывы


Отзывы читателей о книге ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x