Потому что у вас есть два конструктора с одинаковым количеством параметров. Есть Объект и Строка, но оба являются Объектом. Так что это кажется очень двусмысленным.
Когда вы создаете два метода (или конструктора), вы не можете позволить им иметь одинаковое количество параметров, потому что компилятор не знает, какой из них вызывать.
Когда вы вставляете строку в конструкцию следующим образом: new StringToAnsi("bla")
. Компилятор не знает, какой конструктор использовать.