Вам нужно дать этим двум конструкторам разные подписи, на данный момент они оба
foo(string, string);
Иначе как вы (не говоря уже о компиляторе) узнаете, какой метод вы намеревались вызвать?
Вы также можете разместить их в разных классах, или вы можете изменить тип (типы), передаваемый во второй конструктор, например, следующее будет хорошо в качестве вашего второго метода:
public RateInstrument(string ric, string tenor, string date)
public RateInstrument(string ric, DateTime date)
Если ни одна из этих ситуаций не работает в вашей ситуации (например, потому что tenor
и date
не являются взаимоисключающими), тогда вам следует еще раз взглянуть на дизайн вашего класса и определить, следует ли обрабатывать второй случай. другой класс.
Другой альтернативой, которую я часто использую, является задержка установки таких вещей, как дата, до окончания конструктора - опять же, это зависит от дизайна вашего класса.