今天就跟大家聊聊有關C#中怎么操作符重載應用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在C#中,操作符==是對象類的非虛的(操作符不可以為虛的)方法,它是按引用比較的。當你構建一個類時,你可以定義你自己的==操作符。如果你在集合中使用你的類,你應該實現IComparable接口。這個接口有一個叫CompareTo(object)方法,如果“this”大于、小于或等于這個object,它應該相應返回正數、負數或0。如果你希望用戶能夠用優雅的語法使用你的類,你可以選擇定義<、<=、>=、>方法。數值類型(int、long等等)實現了IComparable接口。
下面是一個如何處理等于和比較操作的簡單C#操作符重載應用例子:
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#操作符重載應用} public static bool operator != (Score x, Score y) { return x.value != y.value; } public int CompareTo (object o) { return value - ((Score)o).value; } //C#操作符重載應用} Score a = new Score (5); Score b = new Score (5); Object c = a; Object d = b;
C#操作符重載應用之按引用比較a和b:
System.Console.WriteLine ((object)a == (object)b; // 結果為false
【譯注:上句代碼應該為:System.Console.WriteLine ((object)a == (object)b); // 結果為false】
C#操作符重載應用之比較a和b的值:
System.Console.WriteLine (a == b); // 結果為true
C#操作符重載應用之按引用比較c和d:
System.Console.WriteLine (c == d); // 結果為false
C#操作符重載應用之比較c和d的值:
System.Console.WriteLine (((IComparable)c).CompareTo (d) == 0); // 結果為true
你還可以向Score類添加<、<=、>=、>操作符。C#在編譯期保證邏輯上要成對出現的操作符(!=和==、>和<、>=和<=)必須一起被定義。
看完上述內容,你們對C#中怎么操作符重載應用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。