小编Hon*_*ney的帖子

上传及其对堆的影响

对于以下类:

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类分配内存.

那么这是否意味着当我实例化一个父类,它为子类成员分配内存时,还是在我投射时才发生?

如果我们使用强制转换前进和后退,父母是否可以为多个孩子分配内存?

c# oop inheritance upcasting

9
推荐指数
2
解决办法
1309
查看次数

使用接口事件抛出入侵

对于以下代码:

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 typeBoomObject'

c# unity-game-engine

0
推荐指数
1
解决办法
50
查看次数

标签 统计

c# ×2

inheritance ×1

oop ×1

unity-game-engine ×1

upcasting ×1