语言是C#。
说我有重写类方法的C#。我可以自动替换派生类而不是基类
class A:B
{
protected override void Method(BaseClass bc)
{
(DerivedClass)bc.DerivedClassField = blabla;
}
}
是否有任何库/语言功能的/ etc使用,我可以写如下:由
class A:B
{
protected override void Method(BaseClass bc)
{
bc.DerivedClassField = blabla;
}
}
,比如增加一些属性类A还是什么?
对不起,格式糟糕。
为什么演员表不可接受?你有没有考虑过审查你的设计?这将从根本上打破OOP的原则。 – Strillo 2011-12-19 13:13:42
B类应该是可重用的,所以我们有许多方法可以在许多类中重写。另一方面,我们一定知道bc实际上是哪个类(好吧,我知道这个说法并不能让我看起来像个能干的程序员:))。我正在考虑审查设计,但仍然渴望尽可能少地编写代码)此外,这将使得重新使用B更容易。 – noaRAVE 2011-12-19 13:27:51
这是这个问题的重复:http://stackoverflow.com/questions/8509747/virtual-lists-in-c-sharp-to-avoid-typecasting-in-inherited-classes/8510522#8510522看到它的一些如何处理这个问题的想法。 – 2011-12-19 15:49:39