我有一个很大的四叉树结构,它由指向更多列表等的通用列表(List<T>
)制成。这些列表包含在一个类中:TreeNode<T>
在一棵这样的树中,我存储了GameObject
类型的对象。
为了使树更新更快,我想在每个TreeNode
上存储一个指向包含GameObject
的指针/引用,但是...我遇到了由<T>
的通用类型TreeNode
引起的问题。
这是我遇到的问题(在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;
最佳答案
如果您不知道TreeNode<T>
的类型,我建议您创建一个非通用基类。然后,您可以简单地将引用存储在GameObject中。
铸件
我会避免这种情况,但是您可以使用运算符TreeNode<T>
将TreeNode<GameObject>
转换为as
,如下所示:
gameObject.treeNode = this as TreeNode<GameObject>;
关于c# - C#存储对List <T>的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9098244/