読者です 読者をやめる 読者になる 読者になる

Equalsが拡張メソッドで実装されてたら

C#
public class Object
{
    protected internal virtual bool Eq(Object o) { return this == o; }
}

public static class ObjectExtension
{
    public static bool Equals(this Object self, Object other)
    {
        if (self == null && other == null) return true;
        if (self == null || other == null) return false;
        return self.Eq(other);
    }
}
object o1 = null;
object o2 = null;
if (o1.Equals(o2)) { /* 実行される */ }
if (o1.Equals("")) { /* 実行されない */ }

とか。