C# 读取复杂对象的值

C# 读取复杂对象的值,c#,object,C#,Object,我通过这个函数得到了一个对象: Object temp = NAOData.memory.getData("FaceDetected"); float alpha = temp[1][0][0][1]; 此处描述了输出:。但我无法提取数据。我得到“无法将[]索引应用于'object'类型的表达式” 有什么建议吗?谢谢。对象是所有引用类型的基类型。 它只有基本的东西。 getData返回从对象派生的内容(或被装箱到对象中),因此您将类型“向下浇铸”到对象中,而编译器不知道您的新对

我通过这个函数得到了一个对象:

    Object temp = NAOData.memory.getData("FaceDetected");
    float alpha = temp[1][0][0][1];
此处描述了输出:。但我无法提取数据。我得到“无法将[]索引应用于'object'类型的表达式”


有什么建议吗?谢谢。

对象是所有引用类型的基类型。
它只有基本的东西。

getData返回从对象派生的内容(或被装箱到对象中),因此您将类型“向下浇铸”到对象中,而编译器不知道您的新对象上有索引器

试试这个:

var temp = NAOData.memory.getData("FaceDetected");
float alpha = temp[1][0][0][1];

什么数据类型可以
NAOData.memory.getData()
return?您阅读了吗?它显示了一些类型转换,因此您可能需要阅读它以及您正在执行的特定函数调用的文档。数据类型是ArrayList。我尝试了一些转换方法,但失败了。我认为这里也应该使用某种边界检查。预期会出现这种情况有点假设精确的索引是可以的。我会尝试更具防御性。我不会研究我不知道的类型的业务逻辑。开发人员有责任“防御”“他的代码来自OutOfBounds例外,但你的真命天子……当然,这是针对OP的,其实不是你自己!谢谢我试过你的建议,但还是犯了同样的错误。“temp”的数据类型是ArrayList。然后需要更具体地说明getData返回的内容。