一尘不染

是否可以通过显式类型转换将基类对象分配给派生类引用?

c#

是否可以在C#中使用显式类型转换将基类对象分配给派生类引用?

我尝试了它,它创建了运行时错误。


阅读 270

收藏
2020-05-19

共1个答案

一尘不染

否。对派生类的引用实际上必须引用派生类的实例(或null)。否则,您会期望它如何表现?

例如:

object o = new object();
string s = (string) o;
int i = s.Length; // What can this sensibly do?

如果您希望能够将基本类型的实例转换为派生类型,建议您编写一种方法来创建适当的派生类型实例。或再次查看您的继承树,然后尝试重新设计,这样您就不需要一开始就这样做。

2020-05-19