Я ищу способ создать общую оболочку для любого объекта.
Объект-оболочка будет вести себя так же, как и класс, который он обертывает, но сможет иметь больше свойств, переменных, методов и т. Д., Например, подсчет объектов, кеширование и т. д.
Скажем, класс-оболочка называется Wrapper, а класс, который нужно обернуть, называется Square и имеет конструктор Square (double edge_len) и свойства / methods EdgeLength и Area, я бы хотел использовать их следующим образом:
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>
, которое может обрабатывать как примитивные, так и составные типы (хотя в моей текущей ситуации я был бы счастлив просто обернуть мои собственные классы).
Предложения?
Спасибо.