Интерфейсы ienumerable и ienumerator


Использование IComparable интерфейсов IComparer и интерфейсов в Visual CSharp



Download 0,59 Mb.
bet4/5
Sana20.07.2022
Hajmi0,59 Mb.
#827281
1   2   3   4   5
Bog'liq
2-modul

Использование IComparable интерфейсов IComparer и интерфейсов в Visual CSharp

Сводка
Интерфейсы IComparable IComparer и интерфейсы обсуждаются в одной статье по двум причинам. Эти интерфейсы часто используются вместе. Хотя интерфейсы похожи и имеют похожие имена, они служат различным целям.
Если у вас есть массив типов (например, строка или набор), которые уже поддерживаются, вы можете сортировать этот массив, не предоставляя никаких явных IComparer ссылок на IComparer . В этом случае элементы массива отбрасывются для реализации по умолчанию IComparer Comparer.Default () для вас. Однако, если вы хотите предоставить возможность сортировки или сравнения для настраиваемого объекта, необходимо реализовать оба этих интерфейса.
В этой статье ссылается на пространство имен платформа .NET Framework microsoft платформа .NET Framework System.Collections класса.
IComparable
Роль заключается в предоставлении метода сравнения двух IComparable объектов определенного типа. Это необходимо, если вы хотите предоставить какие-либо возможности заказа для объекта. Подумайте IComparable о предоставлении порядка сортировки по умолчанию для объектов. Например, если у вас есть массив объектов вашего типа, и вы называете метод на этом массиве, обеспечивает сравнение объектов Sort IComparable во время сортировки. При реализации IComparable интерфейса необходимо реализовать CompareTo метод следующим образом:
C#Копировать
// Implement IComparable CompareTo method - provide default sort order.
int IComparable.CompareTo(object obj)
{
Car c=(Car)obj;
return String.Compare(this.make,c.make);
}
Сравнение в методе отличается в зависимости от типа данных сравниваемого значения. String.Compare используется в этом примере, так как свойство, выбранное для сравнения, является строкой.
IComparer
Роль заключается IComparer в предоставлении дополнительных механизмов сравнения. Например, может потребоваться упорядочение класса на нескольких полях или свойствах, восходящий и нисходящий порядок на том же поле или обоих.
Использование IComparer — это двухшаговая процедура. Сначала объявите класс, который реализует, а IComparer затем реализуют Compare метод:
C#Копировать
private class SortYearAscendingHelper : IComparer
{
int IComparer.Compare(object a, object b)
{
Car c1=(Car)a;
Car c2=(Car)b;
if (c1.year > c2.year)
return 1;
if (c1.year < c2.year)
return -1;
else
return 0;
}
}

Download 0,59 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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