c# - C#存储对List <T>的引用

标签 c# list generics casting compiler-errors

我有一个很大的四叉树结构,它由指向更多列表等的通用列表(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/

相关文章:

list - 将数字输入到空列表 Python

python - 在 Pandas 数据框中将不同的日期时间格式转换为 MM/DD/YYYY 格式

java - 基于集合的泛型和反射

c# - 在经典库中使用类时 IronPython 返回错误类型

python - 如何在 python 中将一个列表的异构列表展平为一个列表?

c# - 检查属性是否存在于自定义类列表中

java - 如何获取 java 参数化集合类的类型?

java - 列表<? super B> lsb = new ArrayList<A>(); Java中的逻辑错误?

c# - WPF ListView 标题悬停/按下颜色

c# - 当元素大小写不一致时反序列化/读取 xml。