Я ищу способ создания универсальной обертки для любого объекта.
Объект-обертка будет вести себя так же, как класс, который он оборачивает, но сможет иметь больше свойств, переменных, методов и т. Д. Длянапример, подсчет объектов, кеширование и т. д.
Скажите, что класс-оболочка будет называться Wrapper , а класс, который будет упакован, будет называться Square и имеет конструктор Square(double edge_len) и свойства / методы EdgeLength и Площадь , я хотел бы использовать его следующим образом:
Wrapper<Square> mySquare = new Wrapper<Square>(2.5); /* or */ new Square(2.5);
Console.Write("Edge {0} -> Area {1}", mySquare.EdgeLength, mySquare.Area);
Очевидно, я могу создатьтакой класс-обертку для каждого класса, который я хочу обернуть, но я ищу общее решение, например Wrapper<T>
, которое может обрабатывать как примитивные, так и составные типы (хотя в моей текущей ситуации я был бы рад просто обернуть свои собственные классы).
Предложения?
Спасибо.