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


Особое мнение автора о правилах Microsoft, связанных



Download 6,27 Mb.
Pdf ko'rish
bet165/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   161   162   163   164   165   166   167   168   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Особое мнение автора о правилах Microsoft, связанных 
с именами методов операторов
Я уверен, что все эти правила, касающиеся случаев, когда можно или нельзя вы-
звать метод перегруженного оператора, излишне сложны. Если бы компиляторы, 
поддерживающие перегрузку операторов, просто не генерировали флаг метаданных 
specialname
, можно было бы заметно упростить эти правила, и программистам стало 
бы намного легче работать с типами, поддерживающими методы перегруженных 
операторов. Если бы языки, поддерживающие перегрузку операторов, поддерживали 
бы и синтаксис операторов, все языки также поддерживали бы явный вызов методов 


230
Глава.8 .Методы
с приставкой 
op_
. Я не могу назвать ни одной причины, заставившей Microsoft так 
усложнить эти правила, и надеюсь, что в следующих версиях своих компиляторов 
Microsoft упростит их.
Для типа с методами перегруженных операторов Microsoft также рекомендует 
определять открытые экземплярные методы с дружественными именами, вызы-
вающие методы перегруженных операторов в своей внутренней реализации. На-
пример, тип с перегруженными методами 
op_Addition
или 
op_AdditionAssignment
должен также определять открытый метод с дружественным именем 
Add
. Список 
рекомендованных дружественных имен для всех методов операторов приводится 
в третьем столбце табл. 8.1 и 8.2. Таким образом, показанный ранее тип 
Complex
можно было бы определить и так:
public sealed class Complex {
public static Complex operator+(Complex c1, Complex c2) { ... }
public static Complex Add(Complex c1, Complex c2) { return(c1 + c2); }
}
Ясно, что код, написанный на любом языке, способен вызывать любой из опера-
торных методов по его дружественному имени, скажем 
Add
. Правила же Microsoft, 
предписывающие дополнительно определять методы с дружественными именами, 
лишь осложняют ситуацию. Думаю, это излишняя сложность, к тому же вызов 
методов с дружественными именами вызовет снижение быстродействия, если толь-
ко JIT-компилятор не будет способен подставлять код в метод с дружественным 
именем. Подстановка кода позволит JIT-компилятору оптимизировать весь код 
путем удаления дополнительного вызова метода и тем самым повысить скорость 
выполнения.
ПриМеЧание
Примером.типа,.в.котором.перегружаются.операторы.и.используются.дружественные.
имена.методов.в.соответствии.с.правилами.Microsoft,.может.служить.класс.System 
Decimal.библиотеки.FCL 

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   161   162   163   164   165   166   167   168   ...   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