小编uli*_*i78的帖子

是否可以将对象"转换"为更专业的对象?

问题是我需要一个我无法改变的类对象的额外功能(我正在尝试添加数据绑定支持).我能想到的最佳解决方案是使用此功能编写派生类.所以我可以使用这个类instate的对象.所以现在的问题是,如何初始化新类的对象?我可以使用原始对象作为参数创建一个构造函数,并使用此对象的值初始化派生对象,但对我来说,这似乎不是最聪明的解决方案.如果我可以这样做,那将是很好的:

// MyDerivedClass is derived from ObjectOfAnUnchangeableClass.
MyDerivedClass Obj = ObjectOfAnUnchangeableClass as MyDerivedClass;  
Run Code Online (Sandbox Code Playgroud)

因为这不起作用,因为ObjectOfAnUnchangeableClass不知道MyDerivedClass.另一个想法是拥有一个可以用对象"初始化"的构造函数.就像是:

public MyDerivedClass(UnchangeableClass obj): base(obj){}
Run Code Online (Sandbox Code Playgroud)

这里的想法是,不要让基础构造函数构建一个新对象; 它可以只取现有的对象.

所以我有两个问题:

  1. 在.net中是否有一些概念支持上面提到的内容?
  2. 在一个无法更改的类中有一些额外功能的最佳解决方案是什么?

.net c# inheritance

0
推荐指数
1
解决办法
766
查看次数

标签 统计

.net ×1

c# ×1

inheritance ×1