🗊Презентация Коллекции в С#

Нажмите для полного просмотра!
Коллекции в С#, слайд №1Коллекции в С#, слайд №2Коллекции в С#, слайд №3Коллекции в С#, слайд №4Коллекции в С#, слайд №5Коллекции в С#, слайд №6Коллекции в С#, слайд №7Коллекции в С#, слайд №8Коллекции в С#, слайд №9Коллекции в С#, слайд №10Коллекции в С#, слайд №11Коллекции в С#, слайд №12Коллекции в С#, слайд №13Коллекции в С#, слайд №14Коллекции в С#, слайд №15Коллекции в С#, слайд №16Коллекции в С#, слайд №17Коллекции в С#, слайд №18Коллекции в С#, слайд №19Коллекции в С#, слайд №20Коллекции в С#, слайд №21Коллекции в С#, слайд №22Коллекции в С#, слайд №23Коллекции в С#, слайд №24Коллекции в С#, слайд №25Коллекции в С#, слайд №26Коллекции в С#, слайд №27Коллекции в С#, слайд №28

Содержание

Вы можете ознакомиться и скачать презентацию на тему Коллекции в С#. Доклад-сообщение содержит 28 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1






Лекция 13
Описание слайда:
Лекция 13

Слайд 2





В С# под коллекцией понимается набор элементов с заданным правилом их перебора
В С# под коллекцией понимается набор элементов с заданным правилом их перебора
Классы, объекты которых способны хранить и обрабатывать такие наборы называются классами коллекций
Простейшим примером коллекции является массив. Массивы – это объекты классов, производных от базового абстрактного класса System.Array
Другими примерами коллекций являются списки, деревья, стеки, очереди, словари
Описание слайда:
В С# под коллекцией понимается набор элементов с заданным правилом их перебора В С# под коллекцией понимается набор элементов с заданным правилом их перебора Классы, объекты которых способны хранить и обрабатывать такие наборы называются классами коллекций Простейшим примером коллекции является массив. Массивы – это объекты классов, производных от базового абстрактного класса System.Array Другими примерами коллекций являются списки, деревья, стеки, очереди, словари

Слайд 3





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

Слайд 4





Основополагающим для всех коллекций является реализация перечислителя (итератора), который поддерживается интерфейсами IEnumerator и IEnumerable
Основополагающим для всех коллекций является реализация перечислителя (итератора), который поддерживается интерфейсами IEnumerator и IEnumerable
Перечислитель должен обеспечивать стандартизованный способ поэлементного доступа к содержимому коллекции
Описание слайда:
Основополагающим для всех коллекций является реализация перечислителя (итератора), который поддерживается интерфейсами IEnumerator и IEnumerable Основополагающим для всех коллекций является реализация перечислителя (итератора), который поддерживается интерфейсами IEnumerator и IEnumerable Перечислитель должен обеспечивать стандартизованный способ поэлементного доступа к содержимому коллекции

Слайд 5


Коллекции в С#, слайд №5
Описание слайда:

Слайд 6


Коллекции в С#, слайд №6
Описание слайда:

Слайд 7


Коллекции в С#, слайд №7
Описание слайда:

Слайд 8





Для того, чтобы к объектам некоторого класса можно было бы применять цикл foreach, необходимо реализовать в этом классе интерфейс IEnumerable
Для того, чтобы к объектам некоторого класса можно было бы применять цикл foreach, необходимо реализовать в этом классе интерфейс IEnumerable
Этот интерфейс содержит единственный метод
		IEnumerator GetEnumerator( )
Метод GetEnumerator( ) возвращает ссылку на интерфейс IEnumerator, который, в свою очередь должен быть реализован в данном классе
Описание слайда:
Для того, чтобы к объектам некоторого класса можно было бы применять цикл foreach, необходимо реализовать в этом классе интерфейс IEnumerable Для того, чтобы к объектам некоторого класса можно было бы применять цикл foreach, необходимо реализовать в этом классе интерфейс IEnumerable Этот интерфейс содержит единственный метод IEnumerator GetEnumerator( ) Метод GetEnumerator( ) возвращает ссылку на интерфейс IEnumerator, который, в свою очередь должен быть реализован в данном классе

Слайд 9





Данный интерфейс предоставляет следующие члены:
Данный интерфейс предоставляет следующие члены:
свойство Current типа object, позволяющее получить текущий элемент в коллекции;
bool MoveNext( ) – переход к следующему элементу коллекции с возвратом значения true, если такой переход возможен и false в противном случае;
void Reset( ) – возврат в начальное состояние
Описание слайда:
Данный интерфейс предоставляет следующие члены: Данный интерфейс предоставляет следующие члены: свойство Current типа object, позволяющее получить текущий элемент в коллекции; bool MoveNext( ) – переход к следующему элементу коллекции с возвратом значения true, если такой переход возможен и false в противном случае; void Reset( ) – возврат в начальное состояние

Слайд 10





Сразу после выполнения метода Reset() итератор установлен  перед первым элементом коллекции и попытка вызова свойства Current приводит к выдаче исключения
Сразу после выполнения метода Reset() итератор установлен  перед первым элементом коллекции и попытка вызова свойства Current приводит к выдаче исключения
Поэтому необходимо предварительно вызвать метод MoveNext, чтобы переместить итератор к первому элементу коллекции
Если метод MoveNext проходит конец коллекции, то он возвращает значение false, а итератор помещается после последнего элемента коллекции и обращение к свойству Current снова приводит к выдаче исключения
Описание слайда:
Сразу после выполнения метода Reset() итератор установлен перед первым элементом коллекции и попытка вызова свойства Current приводит к выдаче исключения Сразу после выполнения метода Reset() итератор установлен перед первым элементом коллекции и попытка вызова свойства Current приводит к выдаче исключения Поэтому необходимо предварительно вызвать метод MoveNext, чтобы переместить итератор к первому элементу коллекции Если метод MoveNext проходит конец коллекции, то он возвращает значение false, а итератор помещается после последнего элемента коллекции и обращение к свойству Current снова приводит к выдаче исключения

Слайд 11





В качестве примера рассмотрим класс, который содержит в качестве одного из полей массив строк и реализует интерфейс IEnumerable:
В качестве примера рассмотрим класс, который содержит в качестве одного из полей массив строк и реализует интерфейс IEnumerable:
		public class ListBoxTest : IEnumerable
		{ . . . }
Структура класса ListBoxTest
Реализация метода GetEnumerator() имеет вид:
	      public IEnumerator GetEnumerator( )
         {
        	  return (IEnumerator) new ListBoxEnumerator(this);
          }
Описание слайда:
В качестве примера рассмотрим класс, который содержит в качестве одного из полей массив строк и реализует интерфейс IEnumerable: В качестве примера рассмотрим класс, который содержит в качестве одного из полей массив строк и реализует интерфейс IEnumerable: public class ListBoxTest : IEnumerable { . . . } Структура класса ListBoxTest Реализация метода GetEnumerator() имеет вид: public IEnumerator GetEnumerator( ) { return (IEnumerator) new ListBoxEnumerator(this); }

Слайд 12





В методе GetEnumerator( ) создается  итератор – объект класса ListBoxEnumerator, который приводится к типу интерфейса IEnumerator, т.е. к типу возвращаемого значения
В методе GetEnumerator( ) создается  итератор – объект класса ListBoxEnumerator, который приводится к типу интерфейса IEnumerator, т.е. к типу возвращаемого значения
Аргумент this означает, что нумератор создается для конкретного объекта класса-контейнера ListBoxTest
Класс ListBoxEnumerator в нашем случае реализует интерфейс IEnumerator и имеет следующую структуру
Описание слайда:
В методе GetEnumerator( ) создается итератор – объект класса ListBoxEnumerator, который приводится к типу интерфейса IEnumerator, т.е. к типу возвращаемого значения В методе GetEnumerator( ) создается итератор – объект класса ListBoxEnumerator, который приводится к типу интерфейса IEnumerator, т.е. к типу возвращаемого значения Аргумент this означает, что нумератор создается для конкретного объекта класса-контейнера ListBoxTest Класс ListBoxEnumerator в нашем случае реализует интерфейс IEnumerator и имеет следующую структуру

Слайд 13





Класс-итератор объявляется закрытым, поэтому использовать его можно только внутри класса-контейнера
Класс-итератор объявляется закрытым, поэтому использовать его можно только внутри класса-контейнера
Конструктор класса-итератора имеет вид:
		public ListBoxEnumerator(ListBoxTest lbt)
        	{      		 this.lbt = lbt;
            		index = -1;
       	 }
Объект-итератор получает ссылку на содержащий его объект класса-контейнера
Описание слайда:
Класс-итератор объявляется закрытым, поэтому использовать его можно только внутри класса-контейнера Класс-итератор объявляется закрытым, поэтому использовать его можно только внутри класса-контейнера Конструктор класса-итератора имеет вид: public ListBoxEnumerator(ListBoxTest lbt) { this.lbt = lbt; index = -1; } Объект-итератор получает ссылку на содержащий его объект класса-контейнера

Слайд 14





Метод MoveNext( ) реализован следующим образом:
Метод MoveNext( ) реализован следующим образом:
		public bool MoveNext( )
        	{
            	     index++;
            	     if (index >= lbt.strings.Length)
                	return false;
                  else
                	return true;
        	}
Описание слайда:
Метод MoveNext( ) реализован следующим образом: Метод MoveNext( ) реализован следующим образом: public bool MoveNext( ) { index++; if (index >= lbt.strings.Length) return false; else return true; }

Слайд 15





Реализация метода Reset( ):
Реализация метода Reset( ):
		public void Reset( )
        	{
            	     index = -1;
        	}
Свойство Current:
		public object Current
        	{
            	     get
            	     { return lbt[index]; }
       	 }
Теперь можно использовать цикл foreach
Описание слайда:
Реализация метода Reset( ): Реализация метода Reset( ): public void Reset( ) { index = -1; } Свойство Current: public object Current { get { return lbt[index]; } } Теперь можно использовать цикл foreach

Слайд 16





Еще одним важным интерфейсом, предоставляемым платформой .NET Framework для работы с массивами и классами коллекций, является интерфейс ICollection
Еще одним важным интерфейсом, предоставляемым платформой .NET Framework для работы с массивами и классами коллекций, является интерфейс ICollection
Он обладает тремя свойствами: 
Count, 
IsSynchronized, 
SyncRoot,
а также одним методом СоруТо( )
Чаще других используется свойство Count, которое возвращает количество элементов в коллекции
Описание слайда:
Еще одним важным интерфейсом, предоставляемым платформой .NET Framework для работы с массивами и классами коллекций, является интерфейс ICollection Еще одним важным интерфейсом, предоставляемым платформой .NET Framework для работы с массивами и классами коллекций, является интерфейс ICollection Он обладает тремя свойствами: Count, IsSynchronized, SyncRoot, а также одним методом СоруТо( ) Чаще других используется свойство Count, которое возвращает количество элементов в коллекции

Слайд 17





Эти интерфейсы являются стандартным способом для сравнения объектов в .NET Framework
Эти интерфейсы являются стандартным способом для сравнения объектов в .NET Framework
Разница между ними заключается в следующем: 
интерфейс IComparable реализуется в классе подлежащего сравнению объекта и потому позволяет выполнять сравнения только между этим и еще каким-то объектом; 
интерфейс IComparer реализуется в отдельном классе и потому позволяет выполнять сравнения между любыми двумя объектами
Описание слайда:
Эти интерфейсы являются стандартным способом для сравнения объектов в .NET Framework Эти интерфейсы являются стандартным способом для сравнения объектов в .NET Framework Разница между ними заключается в следующем: интерфейс IComparable реализуется в классе подлежащего сравнению объекта и потому позволяет выполнять сравнения только между этим и еще каким-то объектом; интерфейс IComparer реализуется в отдельном классе и потому позволяет выполнять сравнения между любыми двумя объектами

Слайд 18





Интерфейс IComparable поддерживает один единственный метод CompareTo (), которому в качестве аргумента должен передаваться объект
Интерфейс IComparable поддерживает один единственный метод CompareTo (), которому в качестве аргумента должен передаваться объект
Этот метод возвращает результат целого типа, позволяя в некоторых случаях оценить степень различия между объектами
Описание слайда:
Интерфейс IComparable поддерживает один единственный метод CompareTo (), которому в качестве аргумента должен передаваться объект Интерфейс IComparable поддерживает один единственный метод CompareTo (), которому в качестве аргумента должен передаваться объект Этот метод возвращает результат целого типа, позволяя в некоторых случаях оценить степень различия между объектами

Слайд 19





Интерфейс IComparer тоже предоставляет единственный метод Compare (), который принимает два объекта и возвращает целочисленный результат, точно так же, как метод CompareTo()
Интерфейс IComparer тоже предоставляет единственный метод Compare (), который принимает два объекта и возвращает целочисленный результат, точно так же, как метод CompareTo()
В обоих случаях параметры, предоставляемые методам, относятся к типу System.Object, поэтому сравниваться могут объекты любого типа
Это требует выполнения какой-то операции по сравнению типов и, возможно, выдачи исключений в случае обнаружения того, что используемые типы являются неправильными
Описание слайда:
Интерфейс IComparer тоже предоставляет единственный метод Compare (), который принимает два объекта и возвращает целочисленный результат, точно так же, как метод CompareTo() Интерфейс IComparer тоже предоставляет единственный метод Compare (), который принимает два объекта и возвращает целочисленный результат, точно так же, как метод CompareTo() В обоих случаях параметры, предоставляемые методам, относятся к типу System.Object, поэтому сравниваться могут объекты любого типа Это требует выполнения какой-то операции по сравнению типов и, возможно, выдачи исключений в случае обнаружения того, что используемые типы являются неправильными

Слайд 20





В состав .NET Framework входит используемая по умолчанию реализация  интерфейса IComparer, предназначенная для класса по имени Comparer, который  находится в пространстве имен System.Collections
В состав .NET Framework входит используемая по умолчанию реализация  интерфейса IComparer, предназначенная для класса по имени Comparer, который  находится в пространстве имен System.Collections
Этот класс способен выполнять специфические для каждой культуры операции сравнения между простыми типами, а также любым типом, который поддерживает интерфейс IComparable
Описание слайда:
В состав .NET Framework входит используемая по умолчанию реализация интерфейса IComparer, предназначенная для класса по имени Comparer, который находится в пространстве имен System.Collections В состав .NET Framework входит используемая по умолчанию реализация интерфейса IComparer, предназначенная для класса по имени Comparer, который находится в пространстве имен System.Collections Этот класс способен выполнять специфические для каждой культуры операции сравнения между простыми типами, а также любым типом, который поддерживает интерфейс IComparable

Слайд 21





Классической проблемой, связанной с типом Array, является его фиксированный размер
Классической проблемой, связанной с типом Array, является его фиксированный размер
Класс ArrayList является массивом, чей размер динамически увеличивается по мере необходимости
Объекты ArrayList обладают рядом полезных свойств и методов, позволяющих эффективно работать с ними
Класс ArrayList реализует интерфейс IList
Описание слайда:
Классической проблемой, связанной с типом Array, является его фиксированный размер Классической проблемой, связанной с типом Array, является его фиксированный размер Класс ArrayList является массивом, чей размер динамически увеличивается по мере необходимости Объекты ArrayList обладают рядом полезных свойств и методов, позволяющих эффективно работать с ними Класс ArrayList реализует интерфейс IList

Слайд 22





Этот интерфейс объявлен в пространстве имен System.Collections:
Этот интерфейс объявлен в пространстве имен System.Collections:
		public interface IList : ICollection, IEnumerable
Интерфейс IList представляет коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса
Описание слайда:
Этот интерфейс объявлен в пространстве имен System.Collections: Этот интерфейс объявлен в пространстве имен System.Collections: public interface IList : ICollection, IEnumerable Интерфейс IList представляет коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса

Слайд 23


Коллекции в С#, слайд №23
Описание слайда:

Слайд 24


Коллекции в С#, слайд №24
Описание слайда:

Слайд 25


Коллекции в С#, слайд №25
Описание слайда:

Слайд 26


Коллекции в С#, слайд №26
Описание слайда:

Слайд 27


Коллекции в С#, слайд №27
Описание слайда:

Слайд 28


Коллекции в С#, слайд №28
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию