每个人的晚安,
我在C#中有2个抽象类:
public abstract class A
{
}
public abstract class B
{
}
我希望在我的第三个类中通过配置文件决定运行时间,以扩展A类或B类。
例如:
public Class C : B or A
两个抽象类都提供了一个具有相同签名的抽象方法。
答案 0 :(得分:2)
不,您无法在运行时更改/选择基类,因为在编译时定义了基类。
这听起来像是在两个类中实现通用接口,并且只使用其他地方的接口在您的情况下将是一个很好的解决方案。
interface IListener
{
void Listen();
...
}
class CA : A, IListener{ .... }
class CB : B, IListener { .... }
// to use:
IListner listener = useSSL ? new CA(...) : new CB(...);
答案 1 :(得分:1)
如果我从你的问题和评论中正确理解(检查@RB所说的),那么适当的行为就是定义:
public interface IC
{
}
public class A : IC
{
}
public class B : IC
{
}
编写代码以使用Interface,并设法将正确的具体类注入消费者。