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

2024-04-12

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

我已经尝试过了,它会产生运行时错误。


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

例如:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐