我有一个类:
class Cube
{
public string Name;
public string TexturePath;
}
还有另一个类继承Cube
class DrawableCube : Cube
{
public Texture2D Texture;
public Shader Shader;
}
假设我有一个 Cube
集合,我想将其转换为 DrawableCube
。不只是创建一个将 Cube
作为参数并复制所有属性的构造函数,我如何制作具有结果类型 的
?Cube
的副本DrawableCube
最佳答案
恕我直言,这里最好的解决方案是根本不从 Cube
继承 DrawableCube
,而是让 UI 类 DrawableCube
保持内部引用数据类 Cube
。然而,Cube
应该设计成 immutable class。 .这样 DrawableCube
将需要一个采用 Cube
的构造函数,但您不必复制它的所有属性,您可以只存储给定的引用:
class DrawableCube :
{
private myCube;
public DrawableCube(Cube c)
{
myCube=c;
}
}
关于C# 创建一个从继承类构造的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773253/