CS.OVRD.EQUALS

A public or nested public reference type overloads the equality operator (Equals(object)).

Vulnerability and risk

For reference types, the default implementation of the equality operator is almost always correct. By default, two references are equal only if they point to the same object.

Example 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 }