C# store reference to List<T>

本文关键字:lt gt List store reference to | 更新日期: 2023-09-27 18:22:03

我有一个大型四叉树结构,由指向更多列表的泛型列表(List<T>)等组成。这些列表包含在一个类中:TreeNode<T>

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

为了更快地更新树,我想在每个GameObject上存储一个指向包含TreeNode的指针/引用,但是。。。我遇到了由TreeNode的泛型类型<T>引起的问题。

这是我的问题所在(在TreeNode类中):

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

我得到错误:

Cannot implicitly convert type 'TreeNode<T>' to 'TreeNode<GameObject>'

如有任何帮助或建议,我们将不胜感激。谢谢

编辑-->节点存储在GameObject上,如下所示:

public TreeNode<GameObject> treeNode;

C# store reference to List<T>

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

铸造

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

gameObject.treeNode = this as TreeNode<GameObject>;