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


Выбор главного свойства с параметрами



Download 6,27 Mb.
Pdf ko'rish
bet201/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   197   198   199   200   201   202   203   204   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Выбор главного свойства с параметрами
При анализе ограничений, которые C# налагает на индексаторы, возникает два 
вопроса:


284
Глава.10 .Свойства
‰
Что если язык, на котором написан тип, позволяет разработчику определить 
несколько свойств с параметрами?
‰
Как использовать этот тип в программе на C#?
Ответ: в этом типе надо выбрать один из методов среди свойств с параметра-
ми и сделать его свойством по умолчанию, применив к самому классу экземпляр 
System.Reflection.DefaultMemberAttribute
. Кстати, 
DefaultMemberAttribute
можно применять к классам, структурам или интерфейсам. В С# при компиляции 
типа, определяющего свойства с параметрами, компилятор автоматически при-
меняет к определяющему типу экземпляр атрибута 
DefaultMember
и учитывает 
его при использовании атрибута 
IndexerName
. Конструктор этого атрибута задает 
имя, которое будет назначено свойству с параметрами, выбранному как свойство 
по умолчанию для этого типа.
Итак, в C# при определении типа, у которого есть свойство с параметрами, но 
нет атрибута 
IndexerName
, атрибут 
DefaultMember
, задающий определяющий тип, 
будет указывать имя 
Item
. Если применить к свойству с параметрами атрибут 
IndexerName
, то атрибут 
DefaultMember
определяющего типа будет указывать на 
строку, заданную атрибутом 
IndexerName
. Помните: C# не будет компилировать 
код, содержащий разноименные свойства с параметрами.
В программах на языке, поддерживающем несколько свойств с параметрами, 
нужно выбрать один метод свойства и пометить его атрибутом 
DefaultMember
. Это 
будет единственное свойство с параметрами, доступное программам на C#.
Производительность при вызове 
методов доступа
В случае простых методов доступа 
get
и 
set
JIT-компилятор 
подставляет
(inlines) 
код метода доступа внутрь кода вызываемого метода, поэтому характерного сниже-
ния производительности работы программы, проявляющегося при использовании 
свойств вместо полей, не наблюдается. Подстановка подразумевает компиляцию 
кода метода (или, в данном случае, метода доступа) непосредственно вместе с ко-
дом вызывающего метода. Это избавляет от дополнительной нагрузки, связанной 
с вызовом во время выполнения, но за счет увеличения объема кода откомпилиро-
ванного метода. Поскольку методы доступа свойств обычно содержат мало кода, 
их подстановка может приводить к сокращению общего объема машинного кода, 
а значит, к повышению скорости выполнения.
Заметьте, что при отладке JIT-компилятор не подставляет методы свойств, по-
тому что подставленный код сложнее отлаживать. Это означает, что эффективность 
доступа к свойству в готовой версии программы выше, чем в отладочной. Что же 
касается полей, то скорость доступа к ним одинакова в обеих версиях.



Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   197   198   199   200   201   202   203   204   ...   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