【问题标题】:initialize a class from an existing instance of a base class with minimum amount of code用最少的代码从基类的现有实例初始化一个类
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 2016-06-13
      • 1970-01-01
      相关资源
      最近更新 更多