Нет такого понятия, как «имя экземпляра класса». У объекта нет имени - у переменной есть.
Теперь, может быть, вы захотите создать Dictionary<string, TestA>
, чтобы создать карту от "имени" до объекта ... Я не уверен. Как вы хотите использовать эти имена позже?
Activator.CreateInstance
обычно подходит, если вы не знаете тип до времени выполнения. Это на самом деле так или нет? Какая информация у вас есть во время компиляции, и что у вас есть только во время выполнения?
Когда вы говорите, что хотите «передать несколько параметров конструктору по умолчанию» - что именно вы имеете в виду? Обычно термин «конструктор по умолчанию» используется для ссылки на конструктор без параметров 1 . Как вы собираетесь передавать параметры в конструктор без параметров?
1 Я предпочитаю зарезервировать его для конструктора без параметров, созданного компилятором, когда вы вообще не указали конструкторы, но мы идем.