我正在尝试建立一个像树一样的数据结构,其中每个节点都有另一个参数化类型的节点列表。
例如
node < Aclass >
有一个名为list < node < Bclass > >
的列表,列表中的每个node< Bclass >
都有另一种类型的列表。
数据:Aclass和Bclass之间没有继承。
我的代码存在的问题是,如果我没有在像<T,S>
这样的容器中定义S,就不能将S作为泛型使用
public class Container < T >
{
private T _data;
private List < Container < S > > list;
private Translator < T, S > _translator;
public Container(T data, Translator < T, S > translator)
{
_translator = translator;
list.Add(translator.Translate(data));
}
}
public abstract class Translator < T, S >
{
public abstract S Translate(T rawData);
}
class TranslatorDefinition : Translator < A, B >
{ // where A,B are classes in my project
public override B Translate(A rawData)
{
throw new NotImplementedException();
}
}
这是树的外观示例,其中A,B,C是类
1 Node < A >
1.1 Node < A >
1.1.1 Node < B >
1.1.2 Node < B >
1.1.2.1 Node < C >
1.2 Node < A >
1.2.1 Node < A >
1.3 Node < A >
另外一种实现它的方法也很棒:)
谢谢