CS.WRONGUSE.REFEQ

The method 'Object.ReferenceEquals' is always false because it is called with a value type. Such checks are therefore not useful.

Example

Copy
  namespace NameSpace {
      struct S {
      }
      class A {
      }
  
      class Processor {
          public bool CompareArgs(S s, A a, Object o) {
              if (System.Object.ReferenceEquals(s, a)) // defect
                 return false;
             if (System.Object.ReferenceEquals(o, s)) // defect
                 return false;
             if (System.Object.ReferenceEquals(a, o)) // OK
                 return false;
             return true;
         }
     }
 }