我有一节课:
class Cube
{
public string Name;
public string TexturePath;
}
Run Code Online (Sandbox Code Playgroud)
而另一个继承的类 Cube
class DrawableCube : Cube
{
public Texture2D Texture;
public Shader Shader;
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个Cube我想要变成的集合DrawableCube.如果不创建一个构造函数,将构造函数Cube作为参数并复制所有属性,如何Cube使用结果类型复制a DrawableCube?
恕我直言,在这里最好的解决方案是不继承DrawableCube从Cube所有,但让UI类DrawableCube保持一个内部参考的数据类Cube.Cube但是,应该将其设计为不可变类.这种方式DrawableCube需要一个构造函数取一个Cube,但你不必复制它的所有属性,你可以只存储给定的引用:
class DrawableCube :
{
private myCube;
public DrawableCube(Cube c)
{
myCube=c;
}
}
Run Code Online (Sandbox Code Playgroud)