While indeed you need to use Activator.CreateInstance you might wanna look specifically into the Activator.CreateInstance(String, String) which can be invoked using the name of the class which you might know during runtime.
This will be mostly beneficial if you are instantiating Derived Types on the Base Type. If you're going to be calling SomeMethod
from the derived type itself then the previous answers using this.GetType()
should be sufficient.