父子數據結構,我有以下示例關係:沒有明確的使用葉節點類泛型
namespace Yesod
{
public class Program
{
//
//
//
public struct Particle
{
public byte type;
}
//
//
//
public class Entity<T>
{
public Entity<Entity<T>> Parent
{ get; private set; }
//
//
//
public Entity(Entity<Entity<T>> parent)
{
this.Parent = parent;
}
}
//
//
//
public sealed class Atom : Entity<Particle>
{
public Atom(Entity<Atom> parent)
: base(parent) // Compile Error.
{ }
}
//
//
//
public sealed class Molecule : Entity<Atom>
{
public Molecule()
: base(null)
{ }
}
static void Main(string[] args)
{
}
}
}
我將如何解決上述產生下面的編譯錯誤?
Argument 1: cannot convert from 'Yesod.Program.Entity<Yesod.Program.Atom>' to 'Yesod.Program.Entity<Yesod.Program.Entity<Yesod.Program.Particle>>'
評論回覆#1: 具體而言,代碼試圖類型
Entity<Atom>
的對象分配給類型的對象
Entity<Entity<Particle>>
爲Atom被實現as
public sealed class Atom : Entity<Particle>
由此
Entity<Atom>
預計分解成
Entity<Entity<Particle>>
你想做什麼?你的結構是錯誤的 – 2011-06-13 13:54:03