Equalsが拡張メソッドで実装されてたら
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("")) { /* 実行されない */ }
とか。