Проблема в том, что мне нужно немного больше функциональности для объекта класса, который я не могу изменить (я пытаюсь добавить поддержку связывания данных).
Лучшее решение, о котором я могу подумать, - это просто написать производный класс с этой функциональностью. Так что я могу использовать объекты этого класса instate. Итак, теперь проблема в том, как мне инициализировать объекты нового класса? Я мог бы создать конструктор с исходным объектом в качестве параметра и инициализировать производный объект значениями этого объекта, но мне кажется, что это не самое разумное решение.
Было бы хорошо, если бы я мог сделать что-то вроде:
// MyDerivedClass is derived from ObjectOfAnUnchangeableClass.
MyDerivedClass Obj = ObjectOfAnUnchangeableClass as MyDerivedClass;
Конечно, это не сработает, потому что ObjectOfAnUnchangeableClass не знает о MyDerivedClass. Другая идея - иметь конструктор, который можно «инициализировать» объектом. Что-то вроде:
public MyDerivedClass(UnchangeableClass obj): base(obj){}
Здесь идея состоит в том, чтобы вместо базового конструктора построить новый объект; это может просто взять существующий объект.
Итак, у меня два вопроса:
- Есть ли в .net какая-то концепция, поддерживающая что-то вроде упомянутого выше?
- Какое было бы наилучшее решение, чтобы иметь некоторые дополнительные функции в классе, которые нельзя изменить?