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