инициализировать класс из существующего экземпляра базового класса с минимальным количеством кода - PullRequest
0 голосов
/ 05 октября 2011

Я хотел бы создать класс-оболочку, который заменяет определенный метод или свойство существующего класса минимальным количеством кода

Я мог бы использовать шаблон декоратора, но он не очень чистый. В итоге мне пришлось бы заново объявлять каждый метод и свойство в обернутом классе, хотя я переопределяю только один или два из них и дополнительно должен был бы поддерживать интерфейс.

Я мог бы использовать методы расширения, но я хочу переопределить существующий метод или свойство, чтобы он не работал, и даже если метод расширения может переопределить существующий метод, я бы не хотел, чтобы он переопределял метод для каждого экземпляра.

Лучшее, что я могу придумать, это что-то вроде

    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 голосов
/ 05 октября 2011

См. Ответы на мой вопрос .Мне очень понравилось решение RealProxy .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...