Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create instance with Activator

Assume we have some classes

class Class1{ }
class Class2{ }
class Class3{ }

and I have a Type variable

Type t = /*some type unknown at compile-time*/;

variable t is Class1 or Class2 or Class3. I want to create an instance of that class. As I know I can use the following statement:

object instance = Activator.CreateInstance(t);

But I receive an object. And the question is: how do I cast this object to type that is in variable t. Or maby someone can suggest a workaround. Thanks

like image 845
steavy Avatar asked Jun 20 '26 08:06

steavy


1 Answers

If you want to avoid reflection, then

public interface IClass { }
class Class1 : IClass { }
class Class2 : IClass { }
class Class3 : IClass { }

IClass instance = (IClass)Activator.CreateInstance(t);
like image 185
L.B Avatar answered Jun 22 '26 20:06

L.B