What is System.Activator.CreateInstance and when should I use it?
It allows you to create an instance of an object whose type is known only at runtime. So let's suppose that you have some class
public class MyClass
{
public void SomeMethod()
{
}
}
and you wanted to create an instance of it. The standard way is to do this:
MyClass instance = new MyClass();
but as you can see this means that the type must be known at compile time. What if you wanted to have your user input the name of the class in some textbox. In this case you could use Activator.CreateInstance:
// this could come from anywhere and it's known only at runtime
string someType = "MyClass";
object instance = Activator.CreateInstance(Type.GetType(someType));
The drawback is that since the actual type is not known at compile time you will have to use reflection in order to manipulate the instances created with Activator.CreateInstance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With