С учетом следующего кода клиента:
var obj = new Class1();
Есть ли способ изменить конструктор Class1 так, чтобы он вместо этого фактически возвращал подкласс (или некоторую другую альтернативную реализацию)?
Я бы хотел, чтобы obj получил одну из двух разных реализаций, в зависимости от некоторых условий. Очевидно, что я мог бы перейти на использование фабричной или DI-инфраструктуры, но я бы хотел, по возможности, избежать изменения клиентского кода.
Я предполагаю, что ответ - нет, но мне интересно, есть ли какой-нибудь умный способ сделать это.