这段代码编译但看起来很奇怪。 我有一个典型的简单的父母/孩子关系,这是用非常奇怪的方式使用泛型实现的。 但我似乎无法找到任何其他方式来做到这一点。真奇怪的C#泛型的问题
class SampleObject<T> //I don't want to make this a generic but am forced to
{
//The SampleContainer this object is in
//This must be located in this base class
public SampleContainer<T> Parent { get; set; }
}
class SpecificObject : SampleObject<SpecificObject>
//SampleObject<SpecificObject> !!? This is the bizzare bit
//It seems really strange but necessary for compilation to work
{
}
//A class to contain a List of objects derived from SampleObjects
class SampleContainer<T>
{
public List<T> List;
}
class Start
{
public void Test()
{
SampleContainer<SpecificObject> container = new SampleContainer<SpecificObject>();
SpecificObject o = new SpecificObject(); //create an object
container.List.Add(o); //add it to the list
o.Parent = container; //set its parent
}
}
这段代码可以简化吗?
这就是答案!卫生署!只需要检查我的问题是问题:-) – Petras