抽象类,我有两个类:获得通过字符串名称
class Car<T>
{
public string color { get; set; }
public virtual T features { get; set; }
public virtual void TestDrive();
}
class Toyota : Car<ToyotaFeatures>
{
public override ToyotaFeatures features { get; set; }
public override void TestDrive()
{
//Logic here...
}
}
现在我有一个完整的串类的名称:“MySol.MyProj.Toyota”
我想通过我的字符串名称实例化一个类和然后运行TestDrive()。
问题是,当我尝试运行Activator.CreateInstance(null, "MySol.MyProj.Toyota");
我不能将其强制转换到基类并运行testDrive,因为它期望ToyotaFeatures类被传递给它。但我只想运行TestDrive()只有一个字符串类名称。
而我不想将它转换为特定类型。只适用于基本类型,因此它可以根据提供的字符串决定运行哪个TestDrive()。
要实例强制转换为基类为什么呢?你不想在你的实例上运行TestDrive方法吗?例如,myInstance.TestDrive() –