C#:将超类转换为子类

时间:2019-06-16 08:24:15

标签: c# class type-conversion

我有一个使用的类(SuperClass)。我出于个人目的设计了一个SubClass,它为我添加了附加信息。

class SuperClass{
}

class SubClass: SuperClass{
}

现在,我的问题是,在运行时我要将Superclass的实例转换为SubClass的实例。对它执行一些操作,然后返回到SuperClass。所以我的问题学家,实际上如何将SueprClass实例转换为SubClass实例?

SubClass newItem = superClass as SubClass;

1 个答案:

答案 0 :(得分:1)

如果您正在使用的实例被初始化为SuperClass,则无法将其神奇地转换为SubClass的实例-这样会将整个类型系统扔出窗口。

但是,您可以添加一种将SuperClass转换为SubClass的方法,但是您必须为此编写代码。

一种方法是在SubClass的实例中向SuperClass添加一个构造函数,以及SubClass需要的任何其他信息(如果不需要其他信息,也许您最好使用扩展方法而不是继承。
另一种方法是编写explicit转换运算符。