This print for content only-size & color not accurate 7" X 9-1/4" / casebound / malloy


// Point is also comparable using the comparison operators



Download 21,46 Mb.
Pdf ko'rish
bet780/1830
Sana28.09.2021
Hajmi21,46 Mb.
#188411
1   ...   776   777   778   779   780   781   782   783   ...   1830
Bog'liq
[book] [en] Pro C# 2008 and the NET 3.5 Platform Fourth Edition

// Point is also comparable using the comparison operators.

public struct Point : IComparable

{

...


public int CompareTo(object obj)

{

if (obj is Point)



{

Point p = (Point)obj;

if (this.x > p.x && this.y > p.y)

return 1;

if (this.x < p.x && this.y < p.y)

return -1;

else

return 0;



}

else


throw new ArgumentException();

}

public static bool operator <(Point p1, Point p2)



{ return (p1.CompareTo(p2) < 0); }

public static bool operator >(Point p1, Point p2)

{ return (p1.CompareTo(p2) > 0); }

public static bool operator <=(Point p1, Point p2)

{ return (p1.CompareTo(p2) <= 0); }

public static bool operator >=(Point p1, Point p2)

{ return (p1.CompareTo(p2) >= 0); }

}

The Internal Representation of Overloaded Operators

Like any C# programming element, overloaded operators are represented using specific CIL syntax.

To begin examining what takes place behind the scenes, open the OverloadedOps.exe assembly

C H A P T E R   1 2  

I N D E X E R S, O P E R ATO R S, A N D   P O I N T E R S



394

8849CH12.qxd  9/26/07  11:31 AM  Page 394




using ildasm.exe. As you can see from Figure 12-3, the overloaded operators are internally

expressed via hidden methods (e.g., op_Addition(), op_Subtraction(), op_Equality(), and so on).



Figure 12-3.

In terms of CIL, overloaded operators map to hidden methods.

Now, if you were to examine the specific CIL instructions for the op_Addition method, you

would find that the specialname method decoration has also been inserted by csc.exe:

.method public hidebysig specialname static

valuetype OverloadedOps.Point

op_Addition(valuetype OverloadedsOps.Point p1,

valuetype OverloadedOps.Point p2) cil managed

{

...



}

The truth of the matter is that any operator that you may overload equates to a specially named

method in terms of CIL. Table 12-2 documents the C# operator-to-CIL mapping for the most com-

mon C# operators.



Table 12-2.

C# Operator-to-CIL Special Name Road Map


Download 21,46 Mb.

Do'stlaringiz bilan baham:
1   ...   776   777   778   779   780   781   782   783   ...   1830




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