C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet156/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   152   153   154   155   156   157   158   159   ...   266
Bog'liq
C# for beginners


Часть II. Объектно-ориентированное программирование 
// Вывод возрастов (это значения) людей в словаре 
Console.WriteLine("Вывод значений словаря"); 
foreach (Int32 age in d.Values) 
Console.WriteLine(age); 
Console.Read(); 



Рис. 12.4. 
Создание и обработка словаря (результат) 
В программе создается класс 
SimpleDictionary
из интерфейса 
IDictionary
. В классе задаются поля 
private DictionaryEntry[] items; 
private Int32 ItemsInUse = 0; 
Поле 
items
— это обычный массив. Количество его элементов опреде-
ляется конструктором. Поле 
ItemsInUse
будет играть роль индекса мас-
сива. Далее в самом классе определяются (задаются) члены интерфейса 
IDictionary
. По правилам C# члены подключаемых к классу интерфей-
сов должны получить свою конкретную реализацию в классе, который 
их наследует, потому что в интерфейсе такие члены заданы не конкрет-
но, а абстрактно. Здесь же определяется индексатор — свойство, кото-
рое вызывается из основной программы, как только она начинает
выполнять поиск элемента массива по индексу. Индексатор как раз фи-
зически и осуществляет эту работу. В этом же блоке создается вспомо-
гательный класс 
SimpleDictionaryEnumerator
путем наследования ин-


Глава 12. Коллекции. Обобщения 
253 
терфейса 
IDictionaryEnumerator
, члены которого определяются в этом 
классе и в дальнейшем послужат работе оператора цикла 
foreach
. Затем 
определяются члены интерфейса 
ICollection
, т. к. некоторые члены 
IDictionary
имеют тип 
ICollection
. В частности, свойства 
Keys
(ключи) 
и 
Values
(значения). И, наконец, определяется единственный член
интерфейса 
IEnumerable
, который создает перечислитель типа 
IEnumerator
, необходимый для работы оператора цикла 
foreach

Далее работает основная программа. В ней конструктором создается 
объект 
d
— массив из трех элементов, который затем наполняется кон-
кретными элементами. Это пары типа "ключ — значение". То есть 
обычный словарь. Ключом служат имена людей, значениями — их воз-
раст. Добавка в массив происходит методом 
add()
— членом интерфей-
са 
IDictionary
. Членами этого же интерфейса выполняются действия по 
выводу на экран количества элементов в словаре, проверка, содержится 
ли ключ "Иван" в словаре, и определяется возраст человека с именем 
Иван. В последнем случае поиск строки с ключом "Иван" происходит 
по индексу. Именно в этом месте основная программа вызывает свойст-
во "индексатор", чтобы с его помощью найти соответствующую стро- 
ку в словаре: индексатор ищет в словаре с помощью метода 
TryGetIndexOfKey()
по ключу соответствующую строку, определяет ее 
индекс в массиве и по индексу извлекает из массива значение элемента, 
т. е. возраст. После этого в основной программе демонстрируется рабо-
та члена интерфейса 
IDictionary
по удалению строк из словаря. 
Далее в основной программе выводится на экран содержимое словаря 
парами "ключ — значение". Здесь применяется оператор 
foreach
, кото-
рый и требует наличия двух интерфейсов — 
IEnumerator
и 
IEnumerable

Детальные комментарии даны по тексту программы. Однако для лучше-
го понимания механизма работы всех элементов программы рекоменду-
ется ее прокрутить в режиме отладки, начиная с первой строки основ-
ной программы. Напомним, что при пошаговой отладке продвижение по 
операторам выполняется нажатием клавиши , вход вовнутрь 
строки (если это вызов метода) — клавишей , дальнейшее про-
движение по строкам метода —  или , исполнение всех
команд до следующей точки останова — клавишей . Просмотр со-
держимого переменных осуществляется наведением курсора мыши на 
имя переменной: через некоторое время появятся результаты, выдавае-
мые подсказчиком среды разработки. 


254 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   152   153   154   155   156   157   158   159   ...   266




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish