C#存储对List <t> </t>的引用

时间:2012-02-01 15:12:24

标签: c# list generics casting compiler-errors

我有一个大的四叉树结构,由通用列表(List<T>)指向更多列表,依此类推。这些列表包含在一个类中:TreeNode<T>

在一个这样的树中,我存储了GameObject类型的对象。

为了更快地进行树更新,我希望在每个TreeNode上存储指向包含GameObject的指针/引用,但是......我遇到了泛型类型导致的问题<T>的{​​{1}}。

这是我遇到问题的地方(在TreeNode类内):

TreeNode

我收到错误:

contents.Add(typedObject);
if (typedObject is GameObject)
{
    GameObject gameObject = (GameObject) (object) typedObject;
    gameObject.treeNode = this;
}

非常感谢任何帮助或建议。感谢。

编辑 - &gt; 节点存储在Cannot implicitly convert type 'TreeNode<T>' to 'TreeNode<GameObject>' 上,如下所示:

GameObject

1 个答案:

答案 0 :(得分:2)

如果您不知道TreeNode<T>的类型,我建议创建一个非泛型基类。然后你可以简单地将引用存储在GameObject中。

铸造

我会避免它,但您可以使用运算符TreeNode<T>TreeNode<GameObject>转换为as,如下所示:

gameObject.treeNode = this as TreeNode<GameObject>;