У меня есть 100 классов, имеющих похожие методы подписи, только их внутреннее определение отличается. Я буду передавать одно из имени класса в качестве строки, и мне нужно создать объект этого типа и вызвать методы. Я знаю, что могу использовать «Activator.CreateInstance», но точно не знаю, как в этом случае. Например, допустим, что у меня есть классы с именем Calculator1 to Calculator100. Я не уверен, как отличать его во второй строке в зависимости от строки имени класса.Создать объект из имени класса в строке
ObjectHandle handle = Activator.CreateInstance("NameSpaceCalculator", "Calculator1");
var Calculator = (Calculator1)handle.Unwrap();
Используйте общий интерфейс. – SLaks
Вы * не будете * бросать его. Если эти классы не имеют общего интерфейса, кастинг даже не имеет смысла. Что именно ты пытаешься сделать? – aquinas
Вы не можете сделать этого, если не коснуться какой-то «динамической». Однако вы можете использовать 'Reflection' для доступа к членам созданного объекта, не отбрасывая его на нужный тип. –