In case this reference is null , you are right that the verification may be (but does not seem guaranteed) unnecessary, as can be seen from the implementation of RuntimeHelpers.Equals mentioned in this answer .
However, checking !base.Equals(obj) will break your Equals . When links are not null - !base.Equals will also give true for any different links, not just null values.
A scenario when it goes wrong, for example:
Point x = new Point(1,2); Point y = new Point(1,2); Console.WriteLine(x.Equals(y)); // will print 'False'
Even if x and y are equal in terms of your business logic, they are different objects, so base.Equal returns false .
source share