共用方式為


DA0006:覆寫實值型別的 Equals()

規則 ID

DA0006

分類

.NET Framework 使用

程式碼剖析方法

取樣

訊息

覆寫實值型別上的等於和相等運算子。

訊息類型

警告

原因

Equals 方法的呼叫,或是公用實值型別的相等運算子,佔有程式碼剖析資料的一大部分。 請考慮實作更有效率的方法。

規則描述

對於實值型別而言,Equals 的繼承實作會使用 System.Reflection 程式庫,並比較型別中所有欄位的內容。 但是 Reflection 相當耗費運算資源,而且可能不需要比較每個欄位是否相等。 如果預期使用者會比較或排序執行個體,或是使用執行個體做為雜湊資料表索引鍵,則您的實值型別應該實作 Equals。 如果您的程式語言支援運算子多載,那麼還需要提供等號比較運算子和不等比較運算子的實作。

如需如何覆寫 Equals 和相等運算子的詳細資訊,請參閱實作 Equals 和相等運算子 (= =) 的方針

如何調查警告

如需實作 Equals 和相等運算子的範例,請參閱程式碼分析規則 CA1815:覆寫實值型別上的等號和等號比較運算子