為基類沒有重寫Object.Equals 方法的參考型別實現Equals

來源:互聯網
上載者:User
// ==++== ////   Copyright (c) OwnCom Corporation.  All rights reserved.//// ==--== /*==============================================================================** ** Class: MyRefType**** Purpose: 為基類沒有重寫Object.Equals 方法的參考型別實現Equals****=============================================================================*/class MyRefType:BaseType{RefType retObj;//該欄位是一個參考型別ValueType:valObj;//該欄位是一個實值型別public overide boolean Equals(object obj){//如果基類有實現Equals方法// 首先讓基底類型比較其中的欄位//if(!base.Equals(obj)) return false;//如果obj 為null ,則不相等if(obj == null) return false;//如果兩個對象的類型不相同,則不相等if(this.GetType()!=obj.GetType()) return false;//將obj 轉換為定義的類型訪問其欄位。//注意這裡的轉型不會失敗,因為已經知道是同一個類型MyRefType other=(MyRefType) obj;//比較其中的參考型別的欄位if(!Object.Equals(refObj,other.refObj)) return false;//比較其中的實值型別的欄位,用該欄位類型的Equals方法if(!valobj.Equals(other.valobj)) return false;return true;}// 重載 ==和 != 操作符public static boolean operator== (MyRefType o1,MyRefType o2){return Object.Equals(o1,o2);}public static boolean operator!=(MyRefType o2,MyRefType o2){return !(o1==o2);}}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.