CS.OVRD.EQUALS

公开或嵌套公开引用类型重载了等号运算符 (Equals(object))。

漏洞与风险

对于引用类型,等号运算符的默认实现几乎始终正确。默认情况下,只有当两个引用指向同一对象时才会相等。

示例 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;
         }
     }
 }