Часть II. Объектно-ориентированное программирование
Таблица 12.5.
Явные внедрения интерфейсов
Интерфейс Описания
IDictionary.Add
Добавляет в экземпляр
DictionaryBase
элемент с указанными ключом и значением
IDictionary.Contains
Проверяет, содержит ли экземпляр
DictionaryBase
указанный ключ
IDictionary.IsFixedSize
Выдает значение, показывающее, имеет ли
экземпляр
DictionaryBase
фиксированный
размер
IDictionary.IsReadOnly
Выдает значение, показывающее, имеет ли
экземпляр
DictionaryBase
атрибут "Только
для чтения"
object
IDictionary.Item
Выдает или устанавливает значение
по указанному ключу в экземпляре
DictionaryBase
IDictionary.Keys
Выдает объект
ICollection
, содержащий
ключи из объекта
DictionaryBase
IDictionary.Remove
Удаляет элемент из объекта
DictionaryBase
по указанному ключу
IDictionary.Values
Выдает объект
ICollection
, содержащий
значения из объекта
DictionaryBase
IEnumerable.GetEnumerator
Возвращает
IEnumerator
, который позво-
ляет двигаться по экземпляру
DictionaryBase
Применение интерфейса для создания коллекции и поиска в ней по
ключу показано в приложении, приведенном в листинге 12.4. Результат
представлен на рис. 12.4.
Листинг 12.4
/* Created by SharpDevelop.
* User: user
* Date: 11.12.2012
* Time: 18:20
*
* To change this template use Tools | Options | Coding |
* Edit Standard Headers. */
using System;
using System.Collections;
Глава 12. Коллекции. Обобщения
245
namespace app45_IDictionary
{
public class SimpleDictionary : IDictionary
{ // Словарь (коллекция, массив элементов)
private DictionaryEntry[] items;
private Int32 ItemsInUse = 0; // Поле
// Конструктор, задающий определенное
// количество элементов
public SimpleDictionary(Int32 numItems)
{
items = new DictionaryEntry[numItems]; // Присвоение
// массивов возможно
}
#region IDictionary Members // Специальная область,
// позволяющая редактору среды
// сворачивать, разворачивать ее содержимое
// для удобства пользования (начало)
public bool IsReadOnly
{ get { return false; } } // Свойство
// Метод проверяет, содержится ли в экземпляре
// заданный ключ
public bool Contains(object key)
{
Int32 index;
return TryGetIndexOfKey(key, out index); // Метод
// проверяет, содержится ли в экземпляре
// заданный ключ
}
// Свойство показывает, имеет ли объект
// фиксированный размер
public bool IsFixedSize { get { return false; } }
// Метод удаляет из объекта элемент с заданным ключом
public void Remove(object key)
{
if (key == null)
246
Do'stlaringiz bilan baham: |