我有个问题。我尝试从抽象类 AbstractGenericClass 中的 Program.cs 启动覆盖 Host 方法。
public abstract class AbstractGenericClass<T>
{
protected abstract void Host();
public static void Start()
{
//add additional logic for all classes that use this
try
{
((AbstractGenericClass<T>) Activator.CreateInstance(typeof(T))).Host();
Console.WriteLine("Works!");
}
catch (Exception ex)
{
Console.WriteLine("Don't Works!");
}
}
}
class AnotherClass
{
public void DoSomething()
{
//NOP
}
}
class Program
: AbstractGenericClass<AnotherClass>
{
static void Main(string[] args)
{
Program.Start();
Console.ReadLine();
}
protected override void Host()
{
Console.WriteLine("Host running...");
}
}
我在这里添加了我创建的所有示例类,以显示我的意思。与 ((AbstractGenericClass) Activator.CreateInstance(typeof(T))).Host(); 的行 由于 InvalidCastException 导致程序崩溃。必须可以调用 Host 方法,但如果这不起作用,我不知道我怎么能这样做。
您还有其他想法吗?还是我尝试的完全错误?