Using ``++Object.ReferenceEquals++`` to compare the references of two value types simply won't return the expected results most of the time because such types are passed by value, not by reference.
== Noncompliant Code Example
----
public class MyClass
{
private MyStruct myStruct;
public void DoSomething(MyStruct s1) {
int a = 1;
int b = 1;
if (Object.ReferenceEquals(myStruct, s1)) // Noncompliant; this can never be true
{
// ...
}
else if (Object.ReferenceEquals(a,b)) // Noncompliant