对于以下类:
public class Parent {
//Parent members
}
public class ChildA : Parent {
//ChildA members
}
public class ChildB : Parent {
//ChildB members
}
Run Code Online (Sandbox Code Playgroud)
如果我将ChildA或ChildB实例转发到Parent实例,那么我无法访问其成员,但他们的成员仍然在那里,因为如果我转发并尝试再次访问其成员,我会发现他们仍然拥有他们的数据.
我认为这意味着父实例继续为Child类分配内存.
那么这是否意味着当我实例化一个父类,它为子类成员分配内存时,还是在我投射时才发生?
如果我们使用强制转换前进和后退,父母是否可以为多个孩子分配内存?
对于以下代码:
delegate void deffault ();
public interface IBoom {
event deffault OnBoom;
}
public class BoomObject : IBoom {
public event deffault OnBoom;
public virtual void Start () {
}
}
public class Grenade : BoomObject {
public override void Start () {
if (OnBoom != null)
OnBoom ();
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试在基类中调用一个事件抛出一个子类,我不知道它为什么抛出异常或者这是一个好习惯.
我得到的例外是:
事件BoomObject.OnBoom' can only appear on the left hand side of += or -= when used outside of the type
BoomObject'