【发布时间】:2010-10-29 07:11:03
【问题描述】:
问题是我需要一个我无法更改的类的对象的一些额外功能(我正在尝试添加数据绑定支持)。 我能想到的最好的解决方案就是编写一个具有此功能的派生类。所以我可以使用这个类的对象。那么现在的问题是,如何初始化新类的对象?我可以用原始对象作为参数创建一个构造函数,并用这个对象的值初始化派生对象,但对我来说这似乎不是最聪明的解决方案。 如果我能做这样的事情会很好:
// MyDerivedClass is derived from ObjectOfAnUnchangeableClass.
MyDerivedClass Obj = ObjectOfAnUnchangeableClass as MyDerivedClass;
当然这不会起作用,因为 ObjectOfAnUnchangeableClass 不知道 MyDerivedClass。另一个想法是有一个可以用对象“初始化”的构造函数。比如:
public MyDerivedClass(UnchangeableClass obj): base(obj){}
这里的想法是,不是让基础构造函数构建一个新对象;它可以只取现有的对象。
所以我有两个问题:
- .net 中是否有一些概念支持上述内容?
- 在一个无法更改的类中拥有一些额外功能的最佳解决方案是什么?
【问题讨论】:
标签: c# .net inheritance