EN JP CN

CS.OVRD.EQUALS

CS.OVRD.EQUALS

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

脆弱性とリスク

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

例 1

1  public class Foo {
2      public bool Equals(object o) {     // defect
3          return true;
4      }
5  
6      private class InnerClass {
7          public bool Equals(object o) { // OK - not a public class
8              return true;
9          }
10     }
11 
12     public struct InnerStruct {
13         public bool Equals(object o) { // OK - not a reference type
14             return true;
15         }
16     }
17 }