public void A() { var target = new Target(); var p = new Param(); var p2 = new OtherParam(); object x = new Param(); target.M(p); target.M(p2); target.M(x); target.M(p, p2); target.M(x, x); }