我想做这样的事情:
public static void Initialize<T>(T obj) where T : BaseClass
{
SetDefault(obj);
}
private static void SetDefault(AInheritedFromBaseClass thing)
{
// do something
}
private static void SetDefault(BInheritedFromBaseClass thing)
{
// do something
}
因此,每次我初始化 obj 时,它都会被定向到正确的方法。那可能吗?
我无法在它自己的类上实现这些方法,因为它们是外部类。所以基本上我想有一种通用的方式来按照我想要的方式初始化它们。我想避免这样的事情:
if (obj is TypeA)
{
ClassThis();
} else if (obj is TypeB)
{
CallThat();
}
//etc.