#413 – Check for Reference Equality Using Object.ReferenceEquals
September 16, 2011 Leave a comment
You might encounter types that override both the == operator and the Equals method to check for value equality.
For example, a PersonHeight value type might behave this way. Both checks return true in the example below.
PersonHeight ph1 = new PersonHeight(5, 10); PersonHeight ph2 = new PersonHeight(5, 10); // Both == operator and Equals method are checking // for value equality bool check = ph1 == ph2; // true check = ph1.Equals(ph2); // true
If you want to do a reference equality check, you can always use the Object.ReferenceEquals method. This method cannot be overridden and always does a reference equality check–i.e. compares two object references to see if they refer to the same object.
// Check for reference equality check = ReferenceEquals(ph1, ph2); // false