【发布时间】:2011-10-05 02:06:38
【问题描述】:
我想创建一个包装类,用最少的代码替换现有类的特定方法或属性
我可以使用装饰器模式,但它不是很干净。我最终不得不基本上重新声明包装类中的每个方法和属性,即使我只覆盖其中的一两个并且还必须维护接口。
我可以使用扩展方法,但我想覆盖现有的方法或属性,这样它就不起作用了,即使扩展方法可以覆盖现有的方法,我也不希望它覆盖每个实例的方法。
我能想到的最好的就是
public MyDerivedClass : BaseClass
{
MyDerivedClass(BaseClass obj)
{
this.x = obj.x; this.y=obj.y etc.....
}
public override string BaseMethod()
{
}
}
我真正想要的是类似的东西
public MyDerivedClass:BaseClass
{
MyDerivedClass(BaseClass obj)
{
base = obj;
}
public override string BaseMethod()
{
}
}
【问题讨论】:
标签: c# inheritance