Net framework 5, а также среды Visual Studio 2012 и C#


Тип.System String рис. 14.1



Download 6,27 Mb.
Pdf ko'rish
bet266/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   262   263   264   265   266   267   268   269   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

369
Тип.System String
рис. 14.1.
.Результат.сортировки.строк
Помимо 
Compare
, класс 
CompareInfo
предлагает методы 
IndexOf

IsLastIndexOf

IsPrefix
и 
IsSuffix
. Благодаря имеющейся у каждого из этих методов перегру-
женной версии, которой в качестве параметра передается значение перечислимого 
типа 
CompareOptions
, вы получаете дополнительные возможности по сравнению 
с методами 
Compare

IndexOf

LastIndexOf

StartsWith
и 
EndsWith
класса 
String

Кроме того, следует иметь в виду, что в FCL есть класс 
System.StringComparer

который также можно использовать для сравнения строк. Он оказывается кстати 
в тех случаях, когда необходимо многократно выполнять однотипные сравнения 
множества строк.
интернирование строк
Как я уже отмечал, сравнение строк используется во многих приложениях, однако 
эта операция может ощутимо сказаться на производительности. При 
порядковом 
сравнении
(ordinal comparison) CLR быстро проверяет, равно ли количество симво-
лов в строках. При отрицательном результате строки точно не равны, но если длина 
одинакова, приходится сравнивать их символ за символом. При сравнении с учетом 
региональных стандартов среде CLR тоже приходится посимвольно сравнить строки, 
потому что две строки разной длины могут оказаться равными.
К тому же хранение в памяти нескольких экземпляров одной строки приводит 
к непроизводительным затратам памяти — ведь строки неизменяемы. Эффектив-
ного использования памяти можно добиться, если держать в ней одну строку, на 
которую будут указывать соответствующие ссылки.
Если в приложении строки сравниваются часто методом порядкового сравне-
ния с учетом регистра или если в приложении ожидается появление множества 
одинаковых строковых объектов, то для повышения производительности надо при-
менить поддерживаемый CLR механизм 
интернирования строк
(string interning). 
При инициализации CLR создает внутреннюю хеш-таблицу, в которой ключами 
являются строки, а значениями — ссылки на строковые объекты в управляемой 
куче. Вначале таблица, разумеется, пуста. В классе 
String
есть два метода, предо-
ставляющие доступ к внутренней хеш-таблице:
public static String Intern(String str);
public static String IsInterned(String str);


370
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   262   263   264   265   266   267   268   269   ...   658




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