使用最少量的代码从基类的现有实例初始化类

时间:2011-10-05 02:06:38

标签: c# inheritance

我想创建一个包装类,用最少量的代码替换现有类的特定方法或属性

我可以使用装饰器模式,但它不是很干净。我最终必须基本上重新声明包装类中的每个方法和属性,即使我只是覆盖其中的一个或两个,另外还需要维护接口。

我可以使用扩展方法,但我想覆盖现有的方法或属性,这样就无法工作,即使扩展方法可以覆盖现有方法,我也不希望它为每个实例覆盖方法。

我能想到的最好的就是

    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()
     {
     }

   }

1 个答案:

答案 0 :(得分:0)

查看my question的答案。我真的很喜欢RealProxy解决方案。