Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація інтерфейсу IComparer

Реферат Реалізація інтерфейсу IComparer





ка перечіслітеля. Тому такого поняття, як «поточний елемент», немає. [1]

Інтерфейс IEnumerator.

Цей інтерфейс призначений для перебору значень колекції. До складу цього інтерфейсу входять: MoveNext (), Reset () і властивість Current. () Дозволяє скинути стан перечіслітеля в початковий стан. У цьому стані Нумератор знаходиться відразу після його створення, при цьому перехід до наступного елементу призведе до того, що поточним елементом стане перший елемент колекції. [1]

Метод MoveNext () якраз і здійснює перехід до наступного елементу колекції. Таким чином, MoveNext () потрібно викликати безпосередньо перед зверненням до першого або наступного елементу.

Властивість Current надає доступ до поточного елементу. [1]

Нижче представлений приклад використання цього інтерфейсу.

enumerator=((IEnumerable) someCollection) .GetEnumerator (); (enumerator.MoveNext ())

{elem=(ElemType) enumerator.Current ();

//... якісь дії з елементом колекції.

}


Будь-яка зміна вмісту колекції або кількості її елементів призводить до того, що Нумератор стає недійсним. Так що якщо колекція змінилася, спроба звернутися до методів або властивостям інтерфейсу IEnumerator повинна викликати виключення. Але ці інтерфейси - це всього лише декларація намірів. Реалізація інтерфейсів цілком і повністю лежить на розробниках конкретних класів. Так, всі колекції, що входять в простір імен System.Collections, підтримують цю угоду. Але IEnumerator реалізується також і вбудованими масивами, які цьому правилу не задовольняють. [2]

Використовувати в'язку IEnumerable/IEnumerator найзручніше за допомогою оператора foreach. Так, наведений вище приклад можна переписати наступним чином:

(ElemType elem in someCollection)

{

//... якісь дії з елементом колекції.

}


Інтерфейс ICollection

Інтерфейс ICollection успадковується від IEnumerable:

interface ICollection: Ienumerable


Він визначає властивість, за допомогою якого можна отримати число елементів колекції:

Count {get;}


Крім цього властивості, інтерфейс визначає метод:

CopyTo (Array array, int index);


Завданням цього методу є копіювання елементів колекції в масив. Копіювання виробляється, починаючи з елемента, індекс якого вказаний як другий аргумент методу. Посилання на масив передається в якості першого параметра. Розмір масиву повинен бути достатнім для розміщення копійованих елементів. [1]

Властивість SyncRoot повертає посилання на об'єкт, який повинен використовуватися для синхронізації доступу до об'єкта. Необхідність у такому об'єкті виникає при створенні складних колекцій. Нижче представлений приклад використання властивості SyncRoot:

(myCollection.SyncRoot)

{[0]=myCollection [1] + myCollection [2];

}


Для забезпечення коректної роботи колекції в многопоточной середовищі часто буває зручно не робити синхронізацію вручну, а скористатися обгорткою навколо колекції, що забезпечує синхронізацію доступу до колекції. Властивість IsSynchronized дозволяє визначити, чи потрібна така обгортка наявної посиланні на колекцію, або вона вже й так потокобезпечна. [2]

Інтерфейс IList.

Описані вище методи і властивості дозволяють просто «ганяти» ітератори від одного елемента колекції до іншого, і дізнаватися кількість елементів колекції. Якщо не будуть реалізовані власні методи доступу до даних колекції, колекцією користуватися не вдасться. Так от, інтерфейс IList надає поліморфний механізм маніпуляції даними колекції:

interface IList: ICollection, Ienumerable


В інтерфейсі IList вперше зустрічається спосіб отримати або привласнити якесь значення елементу колекції. Це робиться за допомогою індексатора:

this [int index] {get; set; }


Аргументом в даному випадку є індекс елемента. [1]

Щоб додати елемент в колекцію, можна скористатися методом:

Add (object value);


Метод повинен повернути індекс доданого елемента. [1]

Якщо ж необхідно вставити елемент в конкретне місце колекції, то можна використовувати метод:

Insert (int index, object value);



Назад | сторінка 3 з 21 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Збір трав'янистих рослин, комах ентомологичеськой колекції, тварин коле ...
  • Реферат на тему: Розробка колекції одягу
  • Реферат на тему: Образотворче та декоративно-прикладне мистецтво Відразу в Колекції Сумськог ...
  • Реферат на тему: Створення колекції моделей зачісок &Модний стиль&
  • Реферат на тему: Ворожильні написи II тис. До н.е. Класифікація колекції