public virtual void Hello(){
Console.WriteLine("BaseClass method");
public class MyClass : BaseClass{
public MyClass(string param1,string param2){}
public override void Hello(){
Console.WriteLine("MyClass method");
public static class Program{
public static T DoSomething<T>(object param1,object param2) where T:BaseClass{
T obj=(T)Activator.CreateInstance(typeof(T),param1,param2);
public static void Main(){
MyClass myClass=DoSomething<MyClass>("param1","param2");