如果我有两个类,A和B,其中B派生自A:
class A {} class B : A { }
我可以非常高兴地将B的实例转换为A.
B b = new B(); A a = b;
现在,我可以理解运行时如何确定底层类型是B,如ECMA-335(公共语言基础结构(CLI)分区I到VI)的第132页所述
Objects of instantiated types shall carry sufficient information to
recover at runtime their exact type (including the types and number of
their generic arguments). [Rationale: This is required to correctly
implement casting and instance-of testing,as well as in reflection
capabilities
那么,运行时如何知道虽然底层类型是B,但它实际上存储在A中.我知道我不会看到B上可用的方法,但如果底层类型是B,那么它存储存储位置A的类型?
那有意义吗?
解决方法
原文地址:https://www.jb51.cc/csharp/91722.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。