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



Download 6,27 Mb.
Pdf ko'rish
bet118/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   114   115   116   117   118   119   120   121   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Вызов
ToString.
При вызове 
ToString
упаковка 
p1
не требуется. Казалось бы, 
тип 
p1
должен быть упакован, так как 
ToString
— метод, унаследованный от ба-
зового типа, 
System.ValueType
. Обычно для вызова виртуального метода нужен 


168
Глава.5 .Примитивные,.ссылочные.и.значимые.типы
указатель на типовой объект, а поскольку 
p1
является неупакованным значимым 
типом, то нет ссылки на типовой объект 
Point
. Однако JIT-компилятор видит, 
что метод 
ToString
переопределен в 
Point
, и создает код, который напрямую 
(невиртуально) вызывает 
ToString
. Компилятор знает, что полиморфизм здесь 
невозможен, коль скоро 
Point
является значимым типом, а значимые типы не 
могут применяться для другого типа в качестве базового и по-другому реали-
зовывать виртуальный метод. Ели бы метод 
ToString
из 
Point
во внутренней 
реализации вызывал 
base.ToString()
, то экземпляр значимого типа был бы 
упакован при вызове метода 
ToString
типа 
System.ValueType
.
‰
Вызов
GetType.
При вызове невиртуального метода 
GetType
упаковка 
p1
не-
обходима, поскольку тип 
Point
не реализует 
GetType
, а наследует его от 
System.
Object
. Поэтому для вызова 
GetType
нужен указатель на типовой объект 
Point

который можно получить только путем упаковки 
p1
.
‰
Первый вызов
CompareTo.
При первом вызове 
CompareTo
упаковка 
p1
не нужна, 
так как 
Point
реализует метод 
CompareTo
, и компилятор может просто вызвать его 
напрямую. Заметьте: в 
CompareTo
передается переменная 
p2
типа 
Point
, поэтому 
компилятор вызывает перегруженную версию 
CompareTo
, которая принимает 
параметр типа 
Point
. Это означает, что 
p2
передается в 
CompareTo
по значению, 
и никакой упаковки не требуется.
‰

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   114   115   116   117   118   119   120   121   ...   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