新聞中心
C#操作符重載應(yīng)用的發(fā)現(xiàn):利用操作符重載機(jī)制,程序員可以創(chuàng)建讓人感覺自然的好似簡(jiǎn)單類型(如int、long等等)的類。C#實(shí)現(xiàn)了一個(gè)C++操作符重載的限制版,它可以使諸如這樣的精辟的例子—復(fù)數(shù)類操作符重載表現(xiàn)良好。

欽州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,欽州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為欽州1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的欽州做網(wǎng)站的公司定做!
在C#中,操作符==是對(duì)象類的非虛的(操作符不可以為虛的)方法,它是按引用比較的。當(dāng)你構(gòu)建一個(gè)類時(shí),你可以定義你自己的==操作符。如果你在集合中使用你的類,你應(yīng)該實(shí)現(xiàn)IComparable接口。這個(gè)接口有一個(gè)叫CompareTo(object)方法,如果“this”大于、小于或等于這個(gè)object,它應(yīng)該相應(yīng)返回正數(shù)、負(fù)數(shù)或0。如果你希望用戶能夠用優(yōu)雅的語(yǔ)法使用你的類,你可以選擇定義<、<=、>=、>方法。數(shù)值類型(int、long等等)實(shí)現(xiàn)了IComparable接口。
下面是一個(gè)如何處理等于和比較操作的簡(jiǎn)單C#操作符重載應(yīng)用例子:
- public class Score : IComparable
- {
- int value;
- public Score (int score)
- {
- value = score;
- }
- public static bool operator == (Score x, Score y)
- {
- return x.value == y.value;
- //C#操作符重載應(yīng)用
- }
- public static bool operator != (Score x, Score y)
- {
- return x.value != y.value;
- }
- public int CompareTo (object o)
- {
- return value - ((Score)o).value;
- }
- //C#操作符重載應(yīng)用
- }
- Score a = new Score (5);
- Score b = new Score (5);
- Object c = a;
- Object d = b;
C#操作符重載應(yīng)用之按引用比較a和b:
- System.Console.WriteLine ((object)a == (object)b; // 結(jié)果為false
【譯注:上句代碼應(yīng)該為:System.Console.WriteLine ((object)a == (object)b); // 結(jié)果為false】
C#操作符重載應(yīng)用之比較a和b的值:
- System.Console.WriteLine (a == b); // 結(jié)果為true
C#操作符重載應(yīng)用之按引用比較c和d:
- System.Console.WriteLine (c == d); // 結(jié)果為false
C#操作符重載應(yīng)用之比較c和d的值:
- System.Console.WriteLine (((IComparable)c).CompareTo (d) == 0); // 結(jié)果為true
你還可以向Score類添加<、<=、>=、>操作符。C#在編譯期保證邏輯上要成對(duì)出現(xiàn)的操作符(!=和==、>和<、>=和<=)必須一起被定義。
C#操作符重載應(yīng)用的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#操作符重載應(yīng)用有所幫助。
當(dāng)前名稱:C#操作符重載應(yīng)用的一點(diǎn)體會(huì)
分享URL:http://fisionsoft.com.cn/article/dhggjhc.html


咨詢
建站咨詢
