DA0006:覆寫實值型別的 Equals()
規則 ID |
DA0006 |
分類 |
.NET Framework 使用 |
程式碼剖析方法 |
取樣 |
訊息 |
覆寫實值型別上的等於和相等運算子。 |
訊息類型 |
警告 |
原因
Equals 方法的呼叫,或是公用實值型別的相等運算子,佔有程式碼剖析資料的一大部分。 請考慮實作更有效率的方法。
規則描述
對於實值型別而言,Equals 的繼承實作會使用 System.Reflection 程式庫,並比較型別中所有欄位的內容。 但是 Reflection 相當耗費運算資源,而且可能不需要比較每個欄位是否相等。 如果預期使用者會比較或排序執行個體,或是使用執行個體做為雜湊資料表索引鍵,則您的實值型別應該實作 Equals。 如果您的程式語言支援運算子多載,那麼還需要提供等號比較運算子和不等比較運算子的實作。
如需如何覆寫 Equals 和相等運算子的詳細資訊,請參閱實作 Equals 和相等運算子 (= =) 的方針。
如何調查警告
如需實作 Equals 和相等運算子的範例,請參閱程式碼分析規則 CA1815:覆寫實值型別上的等號和等號比較運算子