CS.OVRD.EQUALS

パブリックまたは入れ子のパブリックの参照タイプによって equality 演算子 (Equals(object)) が過負荷になります。

脆弱性とリスク

参照タイプの場合、equality 演算子のデフォルトの実装はほぼ必ず正しくなります。デフォルトでは、2 つの参照が同じオブジェクトをポイントする場合にのみ、これらは等しくなります。

例 1

コピー
  public class Foo {
      public bool Equals(object o) {     // defect
          return true;
      }
  
      private class InnerClass {
          public bool Equals(object o) { // OK - not a public class
              return true;
          }
     }
 
     public struct InnerStruct {
         public bool Equals(object o) { // OK - not a reference type
             return true;
         }
     }
 }