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



Download 8,15 Mb.
Pdf ko'rish
bet144/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   140   141   142   143   144   145   146   147   ...   266
Bog'liq
C# for beginners


Часть II. Объектно-ориентированное программирование 

position++; 
return (position < carlist.Length); 

public void Reset() // Сброс перечислителя: установка 
// указателя на первый элемент 
{position = 0;} 
public object Current // Выдать текущий объект 

get { return carlist[position];} 


class Program 

public static void Main() 

Console.WriteLine("Совместная работа интерфейсов INumerator, 
INumarable\nи оператора foreach"); 
cars C = new cars(); 
Console.WriteLine("Полученная коллекция\n"); 
foreach(car c in C) 
// Здесь применен табулятор для сдвига на две 
// табуляции, чтобы был разделитель между полями 
Console.WriteLine(c.Brand + "\t\t" + c.Year); 
Console.Write("Press any key to continue..."); 
Console.ReadKey(true); 



Когда начинает работать цикл 
foreach
, сразу идет обращение к методу 
MoveNext()
, в котором индекс перечислителя, установленный в начале 
класса 
cars
в –1, увеличивается на 1, тем самым устанавливая перечис-
литель на 1-й элемент просматриваемого объекта. Затем вызывается 
метод 
Current()
, который выдает текущий элемент оператору (в данном 


Глава 12. Коллекции. Обобщения 
233 
случае — первый). На этом первый шаг цикла завершается, и выполня-
ется тело 
foreach
. После выполнения тела управление передается снова 
на заголовок оператора, тот вызывает метод 
MoveNext()
, который увели-
чивает индекс перечислителя на единицу. Затем с новым значением ин-
декса вызывается метод 
Current()
, который выдает второй элемент,
и т. д. Цикл завершится, когда будут исчерпаны все элементы, потому 
что метод 
MoveNext()
выдает индекс, который не превосходит количест-
ва элементов. 
Рис. 12.2. 
Работа оператора 
foreach
П
РИМЕЧАНИЕ
Если переменная цикла в 
foreach
имеет числовой тип, то оператор не 
требует создания перечислителя, и подключать оба интерфейса не 
требуется. 
Создание
собственного класса коллекций 
Для создания собственного класса коллекций пользуются абстрактным 
классом 
System.Collections.CollectionBase
. Этот класс предоставляет 
два свойства с доступом 
protected

List
и 
InnerList.List
обеспечивает 
доступ к элементам, а 
InnerList
, являясь объектом класса 
ArrayList
, — 
хранение элементов. Свойства этого класса показаны в табл. 12.1, а ме-
тоды — в табл. 12.2. 


234 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   140   141   142   143   144   145   146   147   ...   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