溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C#中怎么操作符重載應(yīng)用

發(fā)布時(shí)間:2021-07-15 11:22:16 來源:億速云 閱讀:121 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)C#中怎么操作符重載應(yīng)用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

在C#中,操作符==是對象類的非虛的(操作符不可以為虛的)方法,它是按引用比較的。當(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)雅的語法使用你的類,你可以選擇定義<、<=、>=、>方法。數(shù)值類型(int、long等等)實(shí)現(xiàn)了IComparable接口。

下面是一個(gè)如何處理等于和比較操作的簡單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#在編譯期保證邏輯上要成對出現(xiàn)的操作符(!=和==、>和<、>=和<=)必須一起被定義。

看完上述內(nèi)容,你們對C#中怎么操作符重載應(yīng)用有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI